linux shell判斷輸入的是哪個不可見字符,例如^X(Ctrl-X)


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM