//View Tip #533
Similar Tips
» another solution to #67
» Remove empty directories
» Generate a random password
» Tar remote dir over SSH
» Fix the previous command

 

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.

Example:
$ 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 »




Comments 

Add your comment

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

Home Latest Browse Top 25 Random Hall Of Fame Contact Submit