我想寫一個腳本在 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
uj5u.com熱心網友回復:
如果發生超時,則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
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/348057.html
標籤:猛击
上一篇:遞回參考
