[英]How to detect Enter key or no input in Bash?
我想寫一個腳本在 X 秒后運行程序,如果用戶按 Enter 可以停止它
但它無法檢測用戶是否按下了 Enter 鍵或沒有輸入
#!/bin/bash
seconds=$((5))
holder='000'
while [ $seconds -gt 0 ]; do
if [[ $holder = "" ]]; then
echo "Stop"
exit
else
echo "Start in $seconds seconds, Press Enter to stop"
fi
IFS= read -r -t 1 -n 1 -s holder && var="$holder"
: $((seconds--))
done
echo Start
如果發生超時, read
失敗(即返回非零返回碼)。 所以就這么簡單:
if read -t 1
then
echo Enter pressed
else
echo Timeout happened
fi
所以在你的情況下,像這樣的事情,也許?
seconds=5
while [[ "$seconds" -gt 0 ]]; do
echo "Start in $seconds seconds, Press Enter to stop"
if read -t 1 -s
then
echo Stop
exit
else
((seconds--))
fi
done
echo Start
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.