1
我想在bash中閱讀任意鍵被按下,無論按下回車鍵,箭頭鍵,數字,字母還是標點符號。Bash閱讀轉義字符和正常字符
這是我想出的最接近的,除了當按下轉義鍵時,它溢出到下一個輸入。另外,轉義鍵將會讀取但不會回顯。
#!/bin/bash
read -r -n 1 -d $'\n' -p 'input> ' line
echo -en "\n"
echo "$line"
我想在bash中閱讀任意鍵被按下,無論按下回車鍵,箭頭鍵,數字,字母還是標點符號。Bash閱讀轉義字符和正常字符
這是我想出的最接近的,除了當按下轉義鍵時,它溢出到下一個輸入。另外,轉義鍵將會讀取但不會回顯。
#!/bin/bash
read -r -n 1 -d $'\n' -p 'input> ' line
echo -en "\n"
echo "$line"
有點哈克/骯髒的方式,而應該努力爲用戶交互shell ......
read -n1 -s -p 'input> ' line; read -t 0.1 -n2 -s line2
line="$line$line2"
現在,它是由你來<ESC>[A
轉換爲字符串<UP>
與否。
注意:這很可能會失敗,如果標準輸入重定向(比如,從管/文件...)
「哈克/髒」 ......幾乎完美。 –
剛剛意識到類似的方法已經在TLDP:http://tldp.org/LDP/abs/html/escapingsection.html#BASHEK – anishsane
是的。然而,這個例子不適用於OS X,因爲Mac上的讀取時間需要是正整數。 TLDP程序工作的唯一方法是在第一次讀取時間後讀取時間可能非常短。 –