字符值:
c="a"
要将字符转换为其 ASCII 值:
v=$(printf %d "'$c")
您要添加到此 ASCII 值的值:
add=1
通过向其添加 $add 来更改其 ASCII 值:
((v+=add))
要将结果转换为 char:
perl -X -e "printf('The character is %c\n', $v);"
我曾经-X
禁用所有警告
您可以将所有这些组合在一行中,并将结果放入变量 $r 中:
c="a"; add=1; r=$(perl -X -e "printf('%c', $(($add+$(printf %d "'$c"))));")
您可以打印结果:
echo "$r"
您可以创建一个函数来返回结果:
achar ()
{
c="$1"; add=$2
printf "$(perl -X -e "printf('%c', $(($add+$(printf %d "'$c"))));")"
}
您可以使用以下功能:
x=$(achar "a" 1) // x = the character that follows a by 1
或者你可以做一个循环:
array=( a k m o )
for l in "${array[@]}"
do
echo "$l" is followed by $(achar "$l" 1)
done