我们使用带有'&'的异步调用的bash脚本.像这样的东西:
function test() {
sleep 1
}
test &
mypid=$!
# do some stuff for two hours
wait $mypid
Run Code Online (Sandbox Code Playgroud)
通常一切都很好,但有时我们会得到错误
"wait: pid 419090 is not a child of this shell"
Run Code Online (Sandbox Code Playgroud)
我知道bash会将子pid保存在一个特殊的表中,我知道('man wait')如果没有人使用$ !,则bash不允许在此表中存储状态信息,并且没有人可以声明'wait $ mypid'.我怀疑,此优化包含导致错误的错误.有人知道如何打印此表或如何禁用此优化?