In bash
, read
hat eine -t
Option , wo Sie ein Timeout angeben. Aus der Manpage:
read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d delim] [name ...]
-t timeout:
Zeitüberschreitung beim Lesen verursachen und Fehler zurückgeben, wenn eine vollständige Eingabezeile nicht innerhalb von Zeitüberschreitungssekunden gelesen wird. Diese Option hat keine Auswirkung, wenn beim Lesen keine Eingaben vom Terminal oder einer Pipe gelesen werden.
Transkript unten (ohne ENTER zu drücken):
$ 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
Ein anderer, der nach ein paar Sekunden ENTER drückt:
$ 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
Und noch eine, die STRG-C drückt:
$ 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