In the world of Bash programmingMastering time is often as crucial as logic itself. sleep command is the ideal tool for introducing a break script, a time delay or a turnaround time between two instructions. Simple, native and lightweight, it integrates perfectly into any command line or scriptautomationThis practical guide shows you how to use it effectively, with concrete examples and best practices from the shell scripting.
Syntax and time units of the sleep command
There sleep command is based on a minimal syntax: [nombre]sleep [suffixe]The numeric parameter indicates the duration, while the suffix determines the unit. By default, if no suffix is specified, the pause is expressed in seconds. This flexibility allows for adapting the time delay for every need.
| 🕒 Suffix | Unit | Example |
|---|---|---|
s (by default) |
Seconds | sleep 5 → 5 seconds |
m |
Minutes | sleep 2m → 2 minutes |
h |
Hours | sleep 1h → 1 hour |
d |
Days | sleep 0.5d → 12 hours |
Decimal values (e.g. sleep 0.5) are supported on most modern systems, offering accuracy down to the millisecond. This flexibility makes the sleep command indispensable for scenarios where a turnaround time end is required.
Understanding the suffix for precise control
Each unit corresponds to a specific use case. For a simple wait between two commands in a script, seconds are sufficient. For a delayed service restart, minutes are more appropriate. Hours and days are reserved for long-term scheduled tasks, such as waiting for a system update. The important thing is to always verify that the suffix corresponds to the scale of your break script.
Integrating sleep into your scripts: practical examples
Here are four concrete use cases that show how the sleep command is part of a logic ofautomation and of Bash programming.
🔹 Simple pause between two orders
The most basic scenario: execute one action, wait, then launch the next. This pattern is common to avoid overloading a processor or to allow time for a file to be generated.
#!/bin/bash echo "Backup starting..." sleep 5 echo "Backup completed after 5 seconds."
To visually check the time delayWe can display the date before and after:
date sleep 10 date
🔹 Loop with sleep for spaced iterations
In a loop for, there sleep command This allows for spacing out iterations. Useful for light monitoring operations or for limiting the frequency of calls to an API.
#!/bin/bash for i in {1..5} do echo "Iteration $i" sleep 1 done
Each cycle lasts one second, resulting in a perfectly readable progressive display.
🔹 Delay before a service starts
After stopping a service (e.g., Apache), a delay may be necessary for resources to be released. The following command introduces a break script 5 seconds between stopping and restarting.
#!/bin/bash echo "Service stopped..." systemctl stop apache2 sleep 5 echo "Restarting the service..." systemctl start apache2
🔹 Wait for a machine to be online
A classic of shell scripting : test the network availability of a host with ping and repeat the attempt every 3 seconds until successful. sleep command avoids flooding the network while maintaining active monitoring.
#!/bin/bash host=192.168.1.1 while: do if ping -c 1 $host &> /dev/null then echo "Host online!" break fi sleep 3 done
Best practices and tips for timing
Beyond simple uses, the sleep command can be combined with variables, arithmetic calculations, or conditions for a automation advanced. Here are some tips from the experience of a consultant in Bash programming.
Use variables for dynamic durations
Rather than hardcoding the duration, store it in a variable. This simplifies maintenance and allows for adjustments. turnaround time without changing the logic of the script.
#!/bin/bash DELAY=10 echo "Waiting for $DELAY seconds..." sleep $DELAY echo "Finished!"
Combine sleep with other commands
There command line Linux offers additional tools: watch to execute periodically, at to plan, or timeout to limit the duration of a process. However, sleep remains the lightest solution for a simple time delay within a script.
| ⚙️ Tool | Main use | Difference with sleep |
|---|---|---|
sleep |
Fixed pause in a script | Blocks execution for a defined duration |
watch |
Repeated execution of a command | Requires an interactive session, not ideal for scripting |
timeout |
Limit the duration of a process | Interrupts a command after a delay, does not suspend the script |
Each tool has its place, but for a break script pure, sleep remains the reference in shell scripting.
Mastery of the sleep command paves the way for more robust scripts, capable of handling complex time sequences without relying on external tools. Whether for orchestrating deployments, spacing requests, or waiting for a resource, this small tool is part of every developer’s essential toolkit. command line.
