最近有一个需求,shell终端输入^X切换到另一个登陆界面。
如何判断输入的是^加上其他字母成为要解决的问题。
查了一堆资料,发现可以这样判断:
#!/bin/sh echo Please input ^X: read a echo $a if [ $a = $‘\030‘ ];then echo ACK else echo NAK fi
其中\030是^X的八进制值。
要查看一个不可见字符的值,可以用od命令
例如shell终端执行:
input a; echo $a | od -t c
输入^X
得到结果:
0000000 030 012
0000002
其中030为^A的值,012为\n的值
-t是type的意思。参数c代表显示字符,d代表以十进制显示,x代表以十六进制显示