Difference between wait and sleep
wait is a BASH built-in command. From man bash
:
wait [n ...] Wait for each specified process and return its termination sta- tus. Each n may be a process ID or a job specification; if a job spec is given, all processes in that job's pipeline are waited for. If n is not given, all currently active child pro- cesses are waited for, and the return status is zero. If n specifies a non-existent process or job, the return status is 127. Otherwise, the return status is the exit status of the last process or job waited for.
sleep is not a shell built-in command. It is a utility that delays for a specified amount of time.
The sleep
command may support waiting in various units of time. GNU coreutils 8.4 man sleep
says:
SYNOPSIS sleep NUMBER[SUFFIX]... DESCRIPTION Pause for NUMBER seconds. SUFFIX may be ‘s’ for seconds (the default), ‘m’ for minutes, ‘h’ for hours or ‘d’ for days. Unlike most implemen- tations that require NUMBER be an integer, here NUMBER may be an arbi- trary floating point number. Given two or more arguments, pause for the amount of time specified by the sum of their values.