Der Zeichenwert:
c="a"
Um das Zeichen seines ASCII-Wert zu konvertieren:
v=$(printf %d "'$c")
Der Wert, den Sie zu diesem ASCII-Wert hinzufügen mögen:
add=1
zu Ändern Sie den ASCII-Wert, indem Sie $ add hinzufügen:
((v+=add))
Um das Ergebnis zu konvertieren char:
perl -X -e "printf('The character is %c\n', $v);"
I -X
verwendet, um alle Warnungen
Sie können alle diese in einer Zeile und das Ergebnis in der vairable kombinieren deaktivieren $ r:
c="a"; add=1; r=$(perl -X -e "printf('%c', $(($add+$(printf %d "'$c"))));")
können Sie das Ergebnis drucken:
echo "$r"
Sie eine Funktion machen kann das Ergebnis zurück:
x=$(achar "a" 1) // x = the character that follows a by 1
oder:
achar()
{
c="$1"; add=$2
printf "$(perl -X -e "printf('%c', $(($add+$(printf %d "'$c"))));")"
}
Sie die Funktion nutzen können Sie können eine Schleife machen:
array=(a k m o)
for l in "${array[@]}"
do
echo "$l" is followed by $(achar "$l" 1)
done
Was möchten Sie tun, wenn Ihre Eingabe z/Z ist? – Levon
das ist kein logischer Fall (ich brauche bis z oder Z !!!) –