等待x秒后提示用户输入和取消提示

时间:2010-12-10 12:23:59

标签: bash shell scripting timeout

如果在预设的时间内没有收到任何回复,如何提示用户输入并继续我的脚本。

例如,这就像我现在所拥有的那样:

read -p "Would you like to reboot? (y/n) " yn
case $yn in
    [Yy]* ) echo "shutting down"; break;;
    [Nn]* ) echo "cancelled shutdown"; break;;
    * ) echo "Please answer y or n.";;
esac

但是我希望提示能够在终端上停留2分钟,然后如果没有收到回复则继续我的脚本。

我有一种模糊的想法,这可能是通过在子shell中运行输入来实现的,但我不知道如何同时运行超时。超时伪代码可以是:

sleep 200s
kill the prompt
continue... 

1 个答案:

答案 0 :(得分:2)

使用-t的{​​{1}}选项。