Introduction
When the user issues a multiple command sequence in Linux, the commands execute immediately one after another or concurrently (e.g., the tee command). However, sometimes it is necessary to postpone the execution of commands and provide enough time for the system to produce the expected results.
In this tutorial, you will learn how to use the Linux sleep
command to delay command execution in the terminal and shell scripts.
Prerequisites
- A system running Linux
- Access to the command line
What Does the Linux sleep Command Do?
The sleep
command suspends the calling process of the next command for a specified amount of time. This property is useful when the following command’s execution depends on the successful completion of a previous command.
Linux sleep Command Syntax Explained
The syntax of the sleep
command is simple:
sleep [number]
In the example above, after sleep 5
was executed, the second command prompt appeared with a 5-second delay.
By default, the system reads the number after sleep
as the number of seconds. To specify other time units, use the following syntax:
sleep [number][unit]
The sleep
command accepts floating-point numbers. It allows multiple values, which are all added together to calculate the duration of sleep
.
Available units are:
s
– secondsm
– minutesh
– hoursd
– days
To stop sleep
after it started and before the specified waiting period ends, press Ctrl + C
.
To see help for the sleep
command, type:
sleep --help
For version details, type:
sleep --version
Linux sleep Command Examples
The following sections contain examples of using the sleep
command in the terminal or shell scripts.
Note: The sleep
command is designed to work in combination with other Linux commands. For a list of available Linux commands, download our free Linux Commands Cheat Sheet.
Set up an Alarm
Use sleep
to tell the system to play an mp3 file after a certain amount of time. The example uses mplayer:
sleep 7h 30m && mplayer alarm.mp3
Delay Commands in Terminal
sleep
is useful for enforcing a time between the execution of two commands. The following example makes echo
commands execute in one-second intervals:
sleep 1 && echo "one" && sleep 1 && echo "two"
Assign a Variable to the sleep Command
It is possible to assign a variable to the sleep
command. Consider the following shell script:
#!/bin/bash
SLEEP_INTERVAL="30"
CURRENT_TIME=$(date +"%T")
echo "Time before sleep: ${CURRENT_TIME}"
echo "Sleeping for ${SLEEP_INTERVAL} seconds"
sleep ${SLEEP_INTERVAL}
CURRENT_TIME=$(date +"%T")
echo "Time after sleep: ${CURRENT_TIME}"
The script defines a variable called SLEEP_INTERVAL
whose value is later used as an argument to the sleep
command. The output of this example script shows that the execution lasted 30 seconds:
Define Check Intervals
The following example illustrates the use of the sleep
command in a script that checks whether a website is online. The script stops if it successfully pings a website, and sleep
introduces a 10-second delay between unsuccessful pings.
#!/bin/bash
while :
do
if ping -c 1 www.google.com &> /dev/null
then
echo "Google is online"
break
fi
sleep 10
done
Allow Time for Operation Completion
You may be running a bash script that internally calls two other bash scripts – one that runs tests in the background and another that prints the results. Use sleep
to prevent the second script from printing the wrong results if it executes before the completion of the first script:
while kill -0 $BACK_PID ; do
echo "Waiting for the process to end"
sleep 1
done
The kill -0 $BACK_PID
command checks if the first script’s process is still running. If it is, it prints the message and sleeps for 1 second before checking again.
Predict Latency
Use sleep
to allow latency of certain command executions. The script snippet below shows how sleep
gives the CPU enough time to perform the calculation before the next iteration.
for (( i = 1 ; i <= 250 ; i++ ));
do
sleep 1
qsub computation"${i}".pbs
done
Conclusion
After reading this tutorial, you should know how to use the Linux sleep
command to pause the execution of the commands in a sequence.
Next you should also read
How to Use the Linux tee Command
January 28, 2021
By default in Linux, a command received through standard input writes directly to standard output. The tee…
Linux Commands Cheat Sheet: With Examples
February 21, 2020
A list of all the important Linux commands in one place. Find the command you need, whenever you need it or…
Linux Ping Command Tutorial with Examples
April 18, 2019
Most Linux users are familiar with the ping command and know how to use it in its basic form. However, there…
How to Check CPU Utilization in Linux with Command Line
January 31, 2019
You have probably noticed your Linux OS slowing down, especially when working harder. Understanding CPU…
Author
Marko Aleksic
Marko Aleksić is a Technical Writer at phoenixNAP. His innate curiosity regarding all things IT, combined with over a decade long background in writing, teaching and working in IT-related fields, led him to technical writing, where he has an opportunity to employ his skills and make technology less daunting to everyone.