bash 内置wait命令使用方法

wait 是一个shell脚本文件,builtin用于执行shell内置的命令,而不使用PATH进行命令查找。

[ssk@localhost tmp]$ cat /usr/bin/wait 

#!/bin/sh

builtin wait "$@"

wait命令只有一个参数,一个pid或者jobid,如果没有给出id,那么则等待所有当前活跃的子进程,并且返回值为0,注意必须是当前shell的子进程,等待一个不相关的进程是不行的。

#!/bin/bash

date +%s

sleep 3   &     

echo "----done----"

date +%s

这样没有使用wait时,sleep语句不会阻塞下面命令的运行,运行结果如下:

1437986076

----done----

1437986076

加上wait命令之后,脚本如下:

#!/bin/bash

date +%s

sleep 3   &

wait

echo "----done----"

date +%s

运行结果如下:

1437986174

----done----

1437986177

可见wait命令等待sleep命令完成之后,才继续脚本的运行,这和不使用&来后台运行命令效果是一样的,sleep 同样会阻塞后面命令的运行。

你可能感兴趣的:(bash 内置wait命令使用方法)