簡體   English   中英

如何檢測輸入 bash 讀取?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM