如何在没有与号(&)的情况下在后台运行命令?

如何在没有与号(&)的情况下在后台运行命令?

如何在 Bash 中在后台运行命令,并且命令末尾不带与号 (&)?

更新: 我想这样做,这样我就可以做到while inotifywait -e modify app.py; do killall -9 python; python app.py &; done,但由于语法的原因,这是不可能的。

答案1

使用coproc python app.py

man bash

协同进程

协同进程是前面带有 coproc 保留字的 shell 命令。协同进程在子 shell 中异步执行,就像命令已使用 & 控制运算符终止一样,在执行 shell 和协同进程之间建立了双向管道。

协同处理的格式为:

coproc [名称] 命令 [重定向]

答案2

你的语法稍微有点不对:

while inotifywait -e modify app.py; do killall -9 python; python app.py &; done

它应该是:

while inotifywait -e modify app.py; do killall -9 python; python app.py & done

;与 C 类语言不同,或之前不能有空语句&

相关内容