(Printf“%d \ n” \'A)此代码正在打印ASCII,但是我正在使用函数,我希望函数返回ASCII,我为此感到困惑。
请帮我。
最佳答案
您可以使用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
关于linux - 如何在bash中编写返回不带printf的字符的ASCII的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43292840/