Запрашивать у пользователя ввод и отменить запрос через x секунд - PullRequest
3 голосов
/ 10 декабря 2010

Как я могу попросить пользователя ввести данные и продолжить работу со своим сценарием, если ответ не получен в течение заданного промежутка времени.

Например, это что-то вроде того, что у меня есть в данный момент:

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 минут, а затем, если ответ не получен, продолжите работу со своим сценарием.

У меня есть смутные мысли, что это возможно при запуске вводав некотором роде, но я не знаю, как запустить тайм-аут в то же время.Псевдокод тайм-аута может быть что-то вроде:

sleep 200s
kill the prompt
continue... 

1 Ответ

2 голосов
/ 10 декабря 2010

Используйте параметр -t read.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...