Linux⼩课堂之Wait命令
wait是⼀个shell命令,它等待给定进程完成,然后返回其退出状态。Wait命令⽤于等待特定的进程ID和作业ID并返回其终⽌状态。
在执⾏⼤型⾃动化流程时,我们需要使⼏个模块等待到上⼀组模块完成并返回数据管道进⼊下⼀个模块的数据,在这种情况下,我们可以使⽤Wait命令直到完成上⼀个模块。
Wait命令如何⼯作?
Wait命令⽤于监视先前的进程,取决于先前的进程的返回状态,它将返回退出状态。例如,如果我们要等待完成特定的进程ID 13245,则当进程13245 完成 wait命令返回13245退出状态的返回值时,应使⽤“ wait 13245”。
-wait PID(PID-实⽤程序要等待终⽌的命令的进程ID)。-wait JID(JID-作业ID,标识要等待的后台进程,仅适⽤于当前Shell执⾏环境中的wait调⽤)。
Wait 命令的退出状态值取决于最后指定的PID / JID。当任何进程异常终⽌时,退出状态将⼤于128。
当它没有⼦进程调⽤并且当前shell知道的所有进程ID都已终⽌时,Wait命令以0值退出。如果wait命令检
测到任何错误,那么它将返回1到126之间的任何值。如果最后⼀个进程ID是未知的,则wait命令将以值127退出。
Wait命令⽰例
让我们检查⼀些脚本以了解wait命令的⼯作⽅式。
⽰例1–带有Wait命令的脚本
我们有两个脚本,分别称为“ foo.sh”和“ bar.sh”脚本。'Foo.sh'脚本的输出数字介于1到5之间,⽽'bar.sh'脚本将调⽤foo.sh并在后台运⾏它,获取foo.sh的PID并等待其完成,⼀旦完成,它将启动“ bar.sh”完成循环。
– foo.sh
– bar.sh
Result
⽰例2–没有wait命令的脚本
我们有两个脚本,分别称为“ foo.sh”和“ bar.sh”脚本。'foo.sh'脚本输出的数字介于1到5之间,⽽bar.sh脚本将调⽤foo.sh 并在后台运⾏它,但它不会等待foo.sh完成并执⾏这两个脚本。
– foo.sh
– bar.sh
Resultlinux循环执行命令脚本
⽰例3–具有wait命令和返回状态的脚本
“ bar.sh”脚本将调⽤foo.sh并在后台运⾏它,获取foo.sh的PID并等待其完成,⼀旦完成,它将启动bar.sh循环,最后,返回 foo.sh脚本的退出代码。
– foo.sh (Exit status = 0)
- foo.sh
– bar.sh
Result
– foo.sh (Exit status = NON Zero)
- foo.sh
– bar.sh
Result
结论
Wait和Sleep都是操作系统中基于时间的系统调⽤。我们来看⼀下wait和sleep命令之间的区别。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。