bash – 按Enter键或等待10秒钟以继续

前端之家收集整理的这篇文章主要介绍了bash – 按Enter键或等待10秒钟以继续前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以要求用户通过使用阅读按Enter键,并让他通过调用sleep等待。但我不能想出一个同时做这两个方法。我想让用户选择:

按Ctrl C键取消,按Enter键继续或等待10秒钟

我怎样才能做到这一点?

在bash中,read有一个-t选项,您可以在其中指定超时。从联机帮助页:

read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d delim] [name ...]

-t timeout: cause read to time out and return failure if a complete line of input is not read within timeout seconds. This option has no effect if read is not reading input from the terminal or a pipe.

下面的脚本(不输入ENTER):

$ 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

猜你在找的Bash相关文章