在bash中,您可以使用&
符号将命令置于后台运行,然后使用wait
命令等待子shell中的所有后台进程完成。以下是一个示例代码:
#!/bin/bash
# 启动一个子shell并在后台运行命令
( sleep 3 && echo "Task 1 completed" ) &
( sleep 5 && echo "Task 2 completed" ) &
( sleep 2 && echo "Task 3 completed" ) &
# 等待子shell中的所有后台进程完成
wait
echo "All tasks completed"
在上面的示例中,我们启动了三个子shell,并在每个子shell中使用sleep
命令模拟一个耗时的任务,然后使用echo
命令输出任务完成的消息。每个子shell都以&
符号结束,表示将其放入后台运行。
接下来,我们使用wait
命令等待子shell中的所有后台进程完成。一旦所有任务都完成,它就会继续执行下一行的代码,输出"All tasks completed"。注意,wait
命令将等待所有子shell中的后台进程完成,而不仅仅是在当前脚本中启动的后台进程。
希望这可以帮助到您!