Bash 捕获后台任务的错误代码

Bash 捕获后台任务的错误代码,bash,Bash,我有一个python脚本,在我的raspberry中,它以无限循环运行。我想捕捉它的退出代码,以防它停止。我制作了一个名为run的脚本,如下所示: #!/bin/bash ~/bin/script.py & wait $! && echo "script exited with code $?" >> ~/bin/log/script.log & 但当我运行它时,我得到以下错误: ~/bin/run: line 3: wait: pid 2728 i

我有一个python脚本,在我的raspberry中,它以无限循环运行。我想捕捉它的退出代码,以防它停止。我制作了一个名为run的脚本,如下所示:

#!/bin/bash
~/bin/script.py &
wait $! && echo "script exited with code $?" >> ~/bin/log/script.log &
但当我运行它时,我得到以下错误:

~/bin/run: line 3: wait: pid 2728 is not a child of this shell
有人能给我一些解决方案的提示吗?

您正在将(单个)脚本推到后台,然后执行阻塞等待。我认为,这是没有必要的。你可以写:

!/bin/bash
~/bin/script.py
echo "script exited with code $?" >> ~/bin/log/script.log

您是否尝试过“等待%1”?为什么要将
wait
/
echo
放在后台?我希望运行脚本可以自由启动另一个脚本