Using the ‘sleep’ Function in Bash Scripts, with Examples

Bash sleep Command

This article explains the sleep command in Bash/Shell scripts and how and why you might use it.

The sleep command in Bash (and other Linux Shells) pauses execution for a specified amount of time – halting the script for a set number of seconds, minutes, hours, etc.

Why Pause Execution?

Why would you want to pause executing your script?

  • Give the user a chance to interrupt an automated action
  • Await user input
  • Wait for a device to warm up/become available
  • Stop text from flying across the screen if you’re trying to read some script output

sleep Syntax

The syntax for the sleep command is as follows:

sleep NUMBER[UNITS]

Note that:

  • NUMBER is the units of time you want the script to pause for (defaults to seconds)
    • The number can be a decimal; it doesn’t have to be a whole integer
  • UNITS is the unit of time you wish to sleep for.
    • Defaults to seconds
    • Can be one of either s (seconds), m (minutes), h(hours), or d (days)

Example Bash Script for sleep

#!/bin/bash

echo "Hello there!"
sleep 6
echo "It's been 6 seconds since I said 'Hello there!'"
sleep 7m 
echo "It's been 7 minutes and 6 seconds since I said 'Hello there!'"
sleep .5
echo "It's been 7 minutes and 6.5 seconds since I said 'Hello there!'"

What is the ‘#!’ in Linux Shell Scripts?

SHARE:
nv-author-image

Brad Morton

I'm Brad, and I'm nearing 20 years of experience with Linux. I've worked in just about every IT role there is before taking the leap into software development. Currently, I'm building desktop and web-based solutions with NodeJS and PHP hosted on Linux infrastructure. Visit my blog or find me on Twitter to see what I'm up to.

Leave a Reply

Your email address will not be published. Required fields are marked *