不知道是否應該將它放在stackoverflow或unix.stackexchange上,但我在這裏發現了一些similarquestions,所以在這裏。bash腳本 - 讀取包含特殊按鍵的單個按鍵輸入和空格
我試圖創建一個腳本,通過.bashrc調用,它允許我根據一個按鍵選擇兩個選項之一。這通常不會很難,但我希望兩個選項對應的兩個鍵都是空格並進入。
這裏就是我有這麼遠:
#!/bin/bash
SELECT=""
while [[ "$SELECT" != $'\x0a' && "$SELECT" != $'\x20' ]]; do
echo "Select session type:"
echo "Press <Enter> to do foo"
echo "Press <Space> to do bar"
read -s -N 1 SELECT
echo "Debug/$SELECT/${#SELECT}"
[[ "$SELECT" == $'\x0a' ]] && echo "enter" # do foo
[[ "$SELECT" == $'\x20' ]] && echo "space" # do bar
done
下面的輸出是我所得到的,如果我按回車,空格,退格鍵和X:
:~$ bin/sessionSelect.sh
Select session type:
Press <Enter> to start/resume a screen session
Press <Space> for a regular ssh session
Debug//0
Select session type:
Press <Enter> to start/resume a screen session
Press <Space> for a regular ssh session
Debug//0
Select session type:
Press <Enter> to start/resume a screen session
Press <Space> for a regular ssh session
Debug//1
Select session type:
Press <Enter> to start/resume a screen session
Press <Space> for a regular ssh session
Debug/x/1
所以進入和空間的結果一個空的SELECT。無法區分這兩者。我試圖在讀取選項中添加-d'D',但這並沒有幫助。也許有人可以指出我正確的方向。
bash版本將是4.2 btw。
相關https://unix.stackexchange.com/questions/179191/bashscript-to-detect-right-arrow-key-being-pressed –