按input或等待10秒钟继续
我可以让用户使用read
来按下回车键 ,让他通过调用sleep
等待。 但我想不出同时做两种方法。 我希望给用户一个select:
按Ctrl + C取消, 回车继续或等待10秒钟
我怎样才能做到这一点?
在bash
, read
有一个-t
选项,您可以在其中指定超时。 从手册:
read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d delim] [name ...]
-t timeout:
如果在超时秒数内没有读取完整的input行,则导致读取超时并返回失败。 如果读取不是从terminal或pipe道读取input,则此选项无效。
下面的脚本(没有input):
$ date ; read -t 10 -p "Hit ENTER or wait ten seconds" ; echo ; date Tue Feb 28 22:29:15 WAST 2012 Hit ENTER or wait ten seconds Tue Feb 28 22:29:25 WAST 2012
另一个,几秒钟后敲击ENTER:
$ date ; read -t 10 -p "Hit ENTER or wait ten seconds" ; date Tue Feb 28 22:30:17 WAST 2012 Hit ENTER or wait ten seconds Tue Feb 28 22:30:19 WAST 2012
另一个,击中CTRL-C:
$ date ; read -t 10 -p "Hit ENTER or wait ten seconds" ; echo ; date Tue Feb 28 22:30:29 WAST 2012 Hit ENTER or wait ten seconds
read
内build有一个超时。
read -t 10
会做的
从bash参考手册 :
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt]
[-t timeout]
[-u fd] [name ...]