Il valore dei caratteri:
c="a"
Per convertire il carattere al suo valore ASCII:
v=$(printf %d "'$c")
Il valore che si desidera aggiungere a questo valore ASCII:
add=1
Per cambia il suo valore ASCII aggiungendo $ aggiungi ad esso:
((v+=add))
per convertire il risultato a char:
perl -X -e "printf('The character is %c\n', $v);"
ho usato -X
per disabilitare tutte le avvertenze
È possibile combinare tutti questi in una linea e mettere il risultato nel vairable $ r:
c="a"; add=1; r=$(perl -X -e "printf('%c', $(($add+$(printf %d "'$c"))));")
è possibile stampare il risultato:
echo "$r"
È possibile effettuare una funzione per restituire il risultato:
achar()
{
c="$1"; add=$2
printf "$(perl -X -e "printf('%c', $(($add+$(printf %d "'$c"))));")"
}
è possibile utilizzare la funzione di:
x=$(achar "a" 1) // x = the character that follows a by 1
o puoi fare un ciclo:
array=(a k m o)
for l in "${array[@]}"
do
echo "$l" is followed by $(achar "$l" 1)
done
cosa vuoi che accada se il tuo input è z/Z? – Levon
questo non è logico (ho bisogno fino a z o Z !!!) –