gpt4 book ai didi

linux - 使 linux "Wait"命令等待所有子进程

转载 作者:IT王子 更新时间:2023-10-29 00:24:16 26 4
gpt4 key购买 nike

Wait 不是等待所有子进程停止。这是我的脚本:

#!/bin/bash

titlename=`echo "$@"|sed 's/\..\{3\}$//'`
screen -X title "$titlename"

/usr/lib/process.bash -verbose $@

wait

bash -c "mail.bash $@"
screen -X title "$titlename.Done"

我无权访问 /usr/lib/process.bash,但它是一个经常更改的脚本,所以我想引用它...但在该脚本中:

#!/bin/ksh
#lots of random stuff
/usr/lib/runall $path $auto $params > /dev/null 2>&1&

我的问题是 runall 创建了一个日志文件...而 ma​​il.bash 应该会将该日志文件邮寄给我,但等待并不是等待runall 完成,似乎只能等待process.bash 完成。无论如何,无法访问 process.bash,或者试图让我自己的 process.bash 保持最新版本,以便正确等待 runall 完成? (日志文件覆盖了之前的运行,所以我不能只检查日志文件是否存在,因为那里总是有一个)

谢谢,丹

最佳答案

(
. /usr/lib/process.bash -verbose $@
wait
)

这不是让操作系统启动 process.bash,而是创建一个子 shell,运行 process.bash 中的所有命令,就好像它们已输入到我们的 shell 脚本中一样,并在该子外壳中等待。

对此有一些注意事项,但如果您没有做任何不寻常的事情,它应该会起作用。

关于linux - 使 linux "Wait"命令等待所有子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290156/

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