Difference between wait and sleep
wait是一个bash内置命令。来自
1 2 3 4 5 6 7 8 9 | 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不是shell内置命令。它是一种延迟一定时间的实用程序。
1 2 3 4 5 6 7 8 9 | 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. |
1 2 3 4 5 | workhard & [1] 27408 workharder & [2] 27409 wait %1 %2 |
延迟shell,直到两个子进程都完成
猛击
等待命令停止脚本执行,直到后台运行的所有作业都已终止或者直到指定为选项的作业编号或进程ID终止
1 2 | wait%1 or wait $PID wait ${!} |
等待${!}表示"等待最后一个后台进程完成"($!是最后一个后台进程的PID)
睡眠
添加指定时间段的延迟。
1 2 | sleep NUMBER[SUFFIX] sleep 5 (sleep five seconds) |
试试这个:
1 2 | sleep 10 & wait %1 |