[英]how to detect enter with bash read?
我有這個腳本
while true
do
size=`tput lines`
size1="$(($size-15))"
output1=$(banner)
output2=$(getMSG)
clear
echo "$output1"
echo "$output2"
read -t 0.1 -s -n 1 -p "Message: >> $msg" msg1
if [[ $msg1 == *"\r"* ]]; then
msg="enter"
else
msg="$msg$msg1"
fi
sleep 0.01
done
它工作正常,但我需要檢測是否按下了回車鍵。 我怎樣才能做到這一點?? 我的任何嘗試都沒有奏效。
我也試過檢查它是否像\n
, \r
或^M
,但沒有運氣。
您可以使用read -N
。
[STEP 101] $ v=
[STEP 102] $ read -N 1 v
<-- Press <ENTER>
[STEP 103] $ printf '%q\n' "$v"
$'\n'
[STEP 104] $
根據help read
:
-N nchars
僅在准確讀取 NCHARS 字符后返回,除非遇到 EOF 或讀取超時,忽略任何分隔符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.