//View Tip #533
Similar Tips
» Get latest stable version of the Linux kernel
» Splitting arguments with read
» Vi mode in bash
» My code is compiling
» List non-system users


Latest tips by RSS
Click here to subscribe
Follow Shell-Fu on Twitter
Click here to follow
Follow Shell-Fu on identi.ca
Click here to follow
In bash scripting if you have a situation where you don't want to wait forever for a user to respond, you can use the read command with the -t option which causes read to time out in "number of seconds" specified.

From read command man page:

-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.

-p prompt : Display prompt, without a trailing newline, before attempting to read any input. The prompt is displayed only if input is coming from a terminal.

$ ans="y"
$ read -t 5 -p "Want to proceed ?(y/n)" ans; echo "You entered $ans"

This is also useful as a replacement for the sleep command as it can be cancelled more easily. For example instead of 'sleep 60':
read -t 60 -p "Press enter to continue"

View Comments »


Add your comment

Comments are currently disabled
alias ls='ls -alh --color=tty'
Posted 2010-07-12 10:17:25

Home Latest Browse Top 25 Random Hall Of Fame Contact Submit