Bash
將 Keypress 指定為“if”命令的變數
在繼續之前,請記住,我知道我可以通過設置菜單配置鍵盤快捷鍵,但這對我的最終目標沒有用處。
我正在嘗試創建一個簡單的腳本以將單個按鍵作為輸入,然後執行操作。理想情況下,我想在
up
按鍵時執行命令。雖然我可以整合,例如,
x
關鍵如下:echo "press key" read -sn 1 key if [ "$key" == "x" ]; then echo "x"; fi
我正在努力找出如何使用此範例中的
up
密鑰。 有可能這樣做嗎?x
嘗試這個:
#! /usr/bin/env bash read -p "press key " -sn 1 key #you can use -p "Message" instead of using echo "Message" before. if [ "$key" == $'\x1b' ]; then read -sn2 chars if [[ $chars = '[A' ]];then echo You pressed 'Up' key fi else echo Pressed another key fi
當您鍵入諸如
Up key
,Right key
,Left key
,之類的鍵時Down Key
,Fn+N
將生成字元串x1\b
。所以你必須檢查變數是否包含該字元串,如果是,那麼你應該閱讀以下兩個字元:
[A
用於向上鍵[C
用於右鍵[B
用於向下鍵[D
用於左鍵