linux shell wait命令详解
学习啦在线学习网 wait命令是linux下的一个命令,那么它的语法和用途是什么呢?下面由学习啦小编为大家整理了linux shell wait命令的相关知识,希望大家喜欢!
linux shell wait命令
wait命令介绍
学习啦在线学习网 wait [作业指示或进程号]
学习啦在线学习网 1.等待作业号或者进程号制定的进程退出,返回最后一个作业或进程的退出状态状态。如果没有制定参数,则等待所有子进程的退出,其退出状态为0.
2.如果是shell中等待使用wait,则不会等待调用函数中子任务。在函数中使用wait,则只等待函数中启动的后台子任务。
学习啦在线学习网 3.在shell中使用wait命令,相当于高级语言里的多线程同步。
语法
wait(参数)
参数
学习啦在线学习网 进程或作业标示:指定进程号或者作业号。
实例
学习啦在线学习网 1.使用wait等待所有子任务结束。
学习啦在线学习网 [plain] view plain copy#!/bin/bash
sleep 10 &
sleep 5&
学习啦在线学习网 wait #等待10秒后,退出
[plain] view plain copy#!/bin/bash
学习啦在线学习网 sleep 10 &
sleep 5&
wait $! #$!表示上个子进程的进程号,wait等待一个子进程,等待5秒后,退出
学习啦在线学习网 2.在函数中使用wait
学习啦在线学习网 [plain] view plain copy#!/bin/bash
source ~/.bashrc
fun(){
echo "fun is begin.timeNum:$timeNum"
local timeNum= class="main">
linux shell wait命令详解
sleep $timeNum &
学习啦在线学习网 wait #这个只等待wait前面sleep
echo "fun is end.timeNum:$timeNum"
}
学习啦在线学习网 fun 10 &
fun 20 &
wait #如果fun里面没有wait,则整个脚本立刻退出,不会等待fun里面的sleep
学习啦在线学习网 echo "all is ending"
输出结果为:
学习啦在线学习网 [plain] view plain copyfun is begin.timeNum:10
fun is begin.timeNum:20
学习啦在线学习网 fun is end.timeNum:10
fun is end.timeNum:20
all is ending
从输出结果,可以看到,整个脚本,等待了所有子任务的退出