<> == Is there a "PAUSE" command in bash like there is in MSDOS batch scripts? To prompt the user to press any key to continue? == Use the following to wait until the user presses enter: {{{ # Bash read -p "Press [enter] to continue..." # Bourne echo "Press [enter] to continue..." read junk }}} Or use the following to wait until the user presses any key to continue: {{{ # Bash read -rsn 1 -p "Press any key to continue..." }}} Sometimes you need to wait until the user presses any key to continue, but you are already using the "standard input" because (for example) you are using a pipe to feed your script. How do you tell {{{read}}} to read from the keyboard? Unix flexibility is helpful here, you can add "< /dev/tty" {{{ # Bash read -rsn 1 -p "Press any key to continue..." < /dev/tty }}} If you want to put a timeout on that, use the `-t` option to `read`: {{{ # Bash printf 'WARNING: You are about to do something stupid.\n' printf 'Press a key within 5 seconds to cancel.' if ! read -rsn 1 -t 5 then something_stupid fi }}} If you just want to pause for a while, regardless of the user's input, use `sleep`: {{{ echo "The script is tired. Please wait a minute." sleep 60 }}} If you want a fancy countdown on your timed `read`: {{{ # Bash # This function won't handle multi-digit counts. countdown() { local i printf %s "$1" sleep 1 for ((i=$1-1; i>=1; i--)); do printf '\b%d' "$i" sleep 1 done } printf 'Warning!!\n' printf 'Five seconds to cancel: ' countdown 5 & pid=$! if ! read -s -n 1 -t 5; then printf '\nboom\n' else kill "$pid"; printf '\nphew\n' fi }}} (If you test that code in an interactive shell, you'll get "chatter" from the job control system when the child process is created, and when it's killed. But in a script, there won't be any such noise.)