我想将我的整数转换为 ASCII 字符
我们可以像这样在java中转换:
int i = 97; //97 is "a" in ASCII
char c = (char) i; //c is now "a"
但是,有没有办法做这个shell脚本?
我想将我的整数转换为 ASCII 字符
我们可以像这样在java中转换:
int i = 97; //97 is "a" in ASCII
char c = (char) i; //c is now "a"
但是,有没有办法做这个shell脚本?
#!/bin/bash
# chr() - converts decimal value to its ASCII character representation
# ord() - converts ASCII character to its decimal value
chr() {
printf \\$(printf '%03o' $1)
}
ord() {
printf '%d' "'$1"
}
ord A
echo
chr 65
echo
编辑:
如您所见ord()
,这有点棘手——在整数前面放一个单引号。
单 Unix 规范:“如果前导字符是单引号或双引号,则该值应是单引号或双引号后面字符的基础代码集中的数值。”
declare -i i=97
c=$(printf \\$(printf '%03o' $i))
echo "char:" $c