|
发表于 2005-8-28 14:10:19
|
显示全部楼层
Post by 寂寞烈火
受3楼启发
- echo $(($(showkey -a <<!2>/dev/null|awk '$1>=97&&$1~/[0-9]/{print $1}'
- $1
- !)-96))
复制代码
test:
- /home/lee#sh str z
- 26
- /home/lee#sh str a
- 1
- /home/lee#sh str c
- 3
复制代码
Post by jhuangjiahua
echo $((`echo -n a | od | head -n 1 | cut -d' ' -f 2`-96))
这个要好记些
如
hua@hua:~$ echo $((`echo -n a | od | head -n 1 | cut -d' ' -f 2`-96))
1
hua@hua:~$ echo $((`echo -n b | od | head -n 1 | cut -d' ' -f 2`-96))
2
hua@hua:~$ echo $((`echo -n z | od | head -n 1 | cut -d' ' -f 2`-96))
26
hua@hua:~$
要不就写成函数 xia() 吧
hua@hua:~$ xia() { echo $((`echo -n $1 | od | head -n 1 | cut -d' ' -f 2`-96)) ; }
hua@hua:~$ xia a
1
hua@hua:~$ xia b
2
hua@hua:~$ xia c
3
hua@hua:~$ xia x
24
hua@hua:~$ xia y
25
hua@hua:~$ xia z
26
hua@hua:~$
满意了吧 :)
为了可移植性,
不要用硬编码,如 96 这样的东西。尽可能使它不依赖于具体的编码。
同时,也不要假设目标 Shell 是 bash。尽可能使它可以在所有的 Shell 中可用。 |
|