(Printf“%d \ n”\'A)此代码正在打印ASCII但是我正在使用函数我希望函数返回ASCII我正在努力解决这个问题。 请帮帮我。
答案 0 :(得分:1)
您可以使用POSIX实用程序od
:
$ echo A | tr -d "\n" | od -An -t uC
65
或hexdump
:
$ echo Z | tr -d "\n" | hexdump -d | head -1 | cut -d " " -f 4
00090
或者你可以循环我想的A-z字母(这里没有错误纠正......):
ord() {
local ordinal=65
for c in {A..z};
do
if [ "$1" = "$c" ]
then
break
fi
let ordinal=ordinal+1
done
echo "$ordinal"
}
$ ord z
122
或者更多'Bashy':
ord() {
local ordinal=65
for c in {A..z};
do
[[ "$1" == "$c" ]] && break
(( ordinal++ ))
done
echo "$ordinal"
}
底线:使用printf
:
$ ord() { LC_CTYPE=C printf '%d\n' "'$1"; }
ord A
65