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