最近有一個需求,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代表以十六進制顯示