Linux Shell脚本-不要等待读取
这是一个倒计时10秒的循环(Linux Shell脚本-不要等待读取,linux,bash,shell,Linux,Bash,Shell,这是一个倒计时10秒的循环($rtime)。 如果您想更早地跳出循环,则必须键入n。 我能不能不等到read得到一个输入,因为此时循环总是 在读取时卡住并在那里等待输入 ct=$(date +"%s") while [ $(( $ctn - $ct )) -le $rtime ] ; do ctn=$(date +"%s") read r if [ "$r" = "n" ] ; then break
$rtime
)。
如果您想更早地跳出循环,则必须键入n。
我能不能不等到read得到一个输入,因为此时循环总是
在读取时卡住并在那里等待输入
ct=$(date +"%s")
while [ $(( $ctn - $ct )) -le $rtime ] ; do
ctn=$(date +"%s")
read r
if [ "$r" = "n" ] ; then
break
fi
done
您可以指定读取<代码>的超时时间:
read -t 1 r
如果在一秒钟后没有输入任何内容,这将导致它完成。或者只使用
read-t$rtime r
并完全避免此处的循环(尽管这将在任何输入上中断,而不仅仅是n
。当然!但您可能希望在循环中执行其他操作(例如打印倒计时),这就是我选择此选项的原因:)谢谢你的快速回复!是的,循环中还有一些其他内容。:)也许这对OP来说是显而易见的,但是为了完整性:对于{10…1}中的i,循环可以写成;执行
以获得10次迭代,向后计数。