Bash 内建命令 wait

本文介绍如何在Bash脚本中并发执行多个任务并确保它们按预期顺序完成。通过使用wait命令,可以在多CPU环境下有效提升任务执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2016/8/14追加:下面有个同学追加了一个评论,对这个命令的用法有疑问。这里的例子不够好,重新写一下。

在 Bash 脚本里后台执行命令,如果要等待执行结束可以使用 wait 命令。

示例:(这里有三个脚本,test.sh / test1.sh /test2.sh)

test.sh 

#!/bin/bash

./test1.sh &
./test2.sh &
echo "sleep done"
#!/bin/bash


sleep 3
echo "test1"

#!/bin/bash


sleep 3
echo "test2"


这时直接输出 sleep done 后再输出了 test1, test2

为了保证test1.sh以及test2.sh的命令能先执行完再往下面执行,追加一个wait内置命令。

#!/bin/bash
./test1.sh &
./test2.sh &

wait
echo "sleep done"


 这时会等待 test1.sh 和 test2.sh 结束后输出 sleep done。 

主要使用场景,在多CPU的环境里执行任务时可以启动几个命令后台并发执行以加快执行速度,在执行完后退出。

参考:

       wait [n]              等待指定的进程,返回它的终止状态。 n 可以是进程 ID 或一个作业号;如果给出的是作业号,将等待作业的管道中所有进程。如果没有给出 n,将等待所有当前处于激活状态的子进程,返回状态是 0。如果 n 指定了不存在的进程或作业,返回状态是 127。否则,返回状态是所等待的最后一个进程或作业的退出状态。

http://qiita.com/geta6/items/199faca823e84026c10a

./test1.sh &
./test2.sh &
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值