gpt4 book ai didi

bash - 等待退出所有子进程退出

转载 作者:行者123 更新时间:2023-11-29 09:30:51 25 4
gpt4 key购买 nike

在我的 shell 脚本中,'wait' 不会等待 xx.sh、yy.sh 和 zz.sh 退出!为什么!

#main.sh
#!/bin/bash
idx=0
while (($idx<1))
do`cd ff
./xx.sh >xx&
./yy.sh >yy&
./zz.sh >zz&
cd -
idx=$(($idx+1))
done|ls
wait
echo "END"


#xx.sh,yy.sh,zz.sh is for sleep

最佳答案

命令在不同的子 shell 中运行,因此等待不会等待正确的进程。要看到这个,试试

./xx.sh >xx &
./yy.sh >yy &
./zz.sh >zz &
wait #this should wait for all of the processes

如果您想使用循环生成,则构建要运行的命令字符串,然后在主脚本中运行它(而不是在 for 循环中)。

关于bash - 等待退出所有子进程退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7343049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com