Difference between wait and sleep
Matthew Martinez
What is difference between wait and sleep?
3 Answers
wait waits for a process to finish; sleep sleeps for a certain amount of seconds.
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. sleep just delays the shell for the given amount of seconds.
wait makes the shell wait for the given job. e.g.:
workhard &
[1] 27408
workharder &
[2] 27409
wait %1 %2delays the shell until both of the subprocesses have finished
2