En bash
, read
tiene una opción -t
donde se puede especificar un tiempo de espera. Desde la página de manual:
read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d delim] [name ...]
-t timeout:
causa leer el tiempo de espera y el fracaso regreso si una línea completa de entrada no se lee en cuestión de segundos de tiempo de espera. Esta opción no tiene efecto si la lectura no está leyendo la entrada del terminal o una tubería.
Transcripción siguiente (sin oprimir la tecla 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
Otro, oprimir la tecla Enter después de un par de segundos:
$ 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
Y otro, pulsando 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
Me encanta cuando se dan respuestas detalladas como esta. ¡Felicitaciones a usted! – Brian
ubuntu. -t - opción ilegal – ses
@ses, asegúrese de estar utilizando el bash incorporado, no una herramienta externa. – paxdiablo