如何使用 bash 读取检测输入?

  • 本文关键字:何使用 bash 读取 bash
  • 更新时间 :
  • 英文 :


我有这个脚本

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

它工作正常,但我需要检测是否按下了回车键。 我该怎么做??我的尝试都没有奏效。

我也尝试检查它是否像nr^M,但没有运气。

您可以使用read -N.

[STEP 101] $ v=
[STEP 102] $ read -N 1 v
<-- Press <ENTER>
[STEP 103] $ printf '%qn' "$v"
$'n'
[STEP 104] $
<小时 />

根据help read

-N nchars

仅在准确读取 NCHARS 字符后返回,除非遇到 EOF 或读取超时,忽略任何分隔符