Differences between revisions 2 and 3
Revision 2 as of 2008-04-30 10:12:50
Size: 808
Editor: Lhunath
Comment: Improved examples and some more explanation.
Revision 3 as of 2008-04-30 13:12:57
Size: 870
Editor: GreyCat
Comment: portability
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
read -sp "Press [enter] to continue..." # Bash
read -p "Press [enter] to continue..."

# Bourne
echo "Press [enter] to continue..."
read junk
Line 11: Line 16:
# Bash
Line 16: Line 22:
# Bash
Line 17: Line 24:
if ! read -sn 1 -t 5 -p "Will resume in 5 seconds. Press any key to abort..." echo -n "Press a key within 5 seconds to cancel."
if ! read -sn 1 -t 5
Line 22: Line 30:
For those of you who just want to pause for a while, regardless of the user's input, use `sleep`: If you just want to pause for a while, regardless of the user's input, use `sleep`:

Anchor(faq65)

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 -sn 1 -p "Press any key to continue..."

If you want to put a timeout on that, use the -t option to read:

# Bash
echo "WARNING: You are about to do something stupid."
echo -n "Press a key within 5 seconds to cancel."
if ! read -sn 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

BashFAQ/065 (last edited 2013-04-08 12:28:58 by geirha)