2010-12-10 9 views
3

入力を求めるプロンプトが表示され、あらかじめ設定された時間内に応答がない場合、スクリプトを続行するにはどうすればよいですか。x秒間待ってからユーザーに入力とキャンセルのプロンプトを表示する

たとえばこれは、現時点では私が持っているもののようなものです:

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... 

答えて

2

read-tオプションを使用します。タイムアウト擬似コードのようなものである可能性があります。

+0

鮮やかでシンプルです。ありがとう – Inti

関連する問題