How do I pause for the specific time between two commands in a script?

I want to do something like following:

#!/bin/bash
command1
<pause for 30 seconds>
command2
exit

How can I do it?


Solution 1:

You can use this in a terminal:

command1; sleep 30; command2

In your script:

#!/bin/bash
command1
sleep 30
command2
exit

Suffix for the sleep time:

  • s for seconds (the default)
  • m for minutes
  • h for hours
  • d for days

Solution 2:

You can use read -t. E.g:

read -p "Continuing in 5 seconds..." -t 5
echo "Continuing..."

In your script:

command1
read -p 'Pausing for 30 seconds' -t 30
command2

Note that you can press Enter to bypass the timeout period.