1.wait介绍

linux命令wait含义为停止脚本的运行,, 直到后台运行的所有作业都结束为止, 或者如果传递了作业号或进程号为参数的话, 那么就直到指定作业结束为止. 返回等待命令的退出状态码

你可以使用wait命令来防止在后台作业没完成(这会产生一个孤儿进程)之前退出脚本

2.wait用法

wait 作业号[进程号]

3.wait样例

wait.sh代码

#!/bin/bash

ROOT_UID=0
E_NOTROOT=65
E_NOPARAMS=66

if [ "$UID" -ne "$ROOT_UID" ];then
  echo "Must be root to run this script."
  exit $E_NOTROOT
fi

if [ -z "$1" ];then
  echo "Usage: `basename $0` find-string"
  exit $E_NOPARAMS
fi

echo "Updating 'locate' database..."
echo "This may take a while."
updatedb &

wait
#将不会继续向下运行, 除非'updatedb'命令执行完成.
#你希望在查找文件名之前更新database.

locate $1
#如果没有'wait'命令的话, 而且在比较糟的情况下,
#脚本可能在'updatedb'命令还在运行的时候退出,
#这将会导致'updatedb'成为一个孤儿进程.

exit 0

wait.sh运行

[root@kibana ~]# sh wait.sh 
Usage: wait.sh find-string
[root@kibana ~]# sh wait.sh case.sh 
Updating 'locate' database...
This may take a while.
/root/case.sh
/usr/local/kibana-7.11.1/x-pack/plugins/case/server/scripts/get_case.sh
/usr/local/kibana-7.11.1/x-pack/plugins/case/server/scripts/post_case.sh
[root@kibana ~]#