W bash
, read
posiada opcję -t
którym można określić limit czasu. Z podręcznika:
read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d delim] [name ...]
-t timeout:
przyczyną czytać do czasu wyjścia i powrotu niepowodzenie jeśli kompletna linia wejścia nie jest odczytywany w ciągu TIMEOUT s. Ta opcja nie ma zastosowania, jeśli odczyt nie odczytuje danych wejściowych z terminala lub potoku.
Transkrypcja poniżej (bez uderzania 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
Innym, naciskając klawisz ENTER po kilku sekundach:
$ 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
I jeszcze, trafiając 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
Absolutnie kocham go, gdy szczegółowe odpowiedzi, jak to podano. Kudos do ciebie! – Brian
ubuntu. -t - nielegalna opcja – ses
@ses, upewnij się, że używasz wbudowanego basha, a nie jakiegoś zewnętrznego narzędzia. – paxdiablo