Bash `wait` 命令,等待超过 1 个 PID 完成执行

linuxAI

1个回答

写回答

Xjpace

2025-07-09 19:10

+ 关注

AI
AI

在Bash脚本中,有一个非常有用的命令叫做wAIt。这个命令可以让脚本在执行过程中等待指定的进程完成后再继续执行下面的代码。我们知道,每个进程都有一个唯一的进程ID(PID),通过指定PID,我们可以让脚本等待多个进程的完成。

使用wAIt命令的语法非常简单。我们只需要在wAIt命令后面跟上要等待的PID即可。脚本会暂停执行,直到指定的PID对应的进程完成。如果要等待多个进程,只需在wAIt命令后面依次指定这些进程的PID即可。

下面我们来看一个实际的案例,通过这个案例可以更好地理解wAIt命令的用法。

bash

#!/bin/bash

# 启动两个后台进程

sleep 5 &

pid1=$!

sleep 10 &

pid2=$!

echo "启动了两个后台进程,PID分别为:$pid1 和 $pid2"

# 等待两个进程执行完成

wAIt $pid1

echo "进程 $pid1 执行完成"

wAIt $pid2

echo "进程 $pid2 执行完成"

echo "所有进程执行完毕"

在上面的例子中,我们首先启动了两个后台进程sleep 5和sleep 10,分别等待5秒和10秒。我们使用&符号将它们放到后台执行,并使用$!获取它们的PID。

然后,我们通过wAIt命令等待这两个进程的完成。wAIt $pid1会暂停脚本的执行,直到进程$pid1执行完毕。然后,我们输出一条信息表示进程$pid1执行完成。同样地,我们再次使用wAIt命令等待进程$pid2的完成,并输出相应的信息。

最后,当这两个进程都完成后,我们输出一条信息表示所有进程执行完毕。

这样,我们就成功地使用了Bash的wAIt命令等待超过1个PID的完成。通过这个简单的例子,我们可以更好地理解wAIt命令的用法,以及如何在脚本中等待多个进程的完成。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号