在 Linux/bash 中如何阻止异步命令?

在 Linux/bash 中如何阻止异步命令?

我有一个调用外部构建脚本的 makefile。

其中一些脚本(我无法更改)使用了分叉/后台的命令(或异步的,正如 bash 手册所命名的)

这意味着 makefile 中的下一行可以在某些前一个命令完成之前开始 - 从而产生竞争条件。

我不知何故需要等待分叉的进程及其所有子进程,或者只是阻止在后台运行后续脚本的任何命令或子命令。

有没有办法可以防止这种情况,即禁用当前和子子 shell 中的命令的“&”后缀?

答案1

一种可能的方法是创建这些脚本的副本,并使用 make some 命令在后台运行来删除构造。请注意,您可能不想自动删除所有内容,&因为您可能会弄乱以下命令:

command && command 

另一种可能的方法是请求编辑脚本的权限(而不是复制它们)

相关内容