如果我在 bash 提示符下发出这个: $ cmd_1 ; cmd_2
cmd_1 在前台。我可以在不停止 cmd_1 的情况下阻止 cmd_2 运行吗?我要等到 cmd_1 完成,此时 cmd_2 将启动,然后为时已晚。
我认为这是不可能的,但也许有工作控制?
-Z $ bg 是否将两个命令都推送到 bg 中?相反, cmd_1 是否去 bg 并且 cmd_2 是(在哪里?“待定背景?”像@ cmd?)仍在等待 cmd_1 退出?
这些命令不是有条件地调用的,比如“cmd_1 && cmd_2”,这些命令也不是在调用时作为背景的。cmd_1 正在 fg 中运行,cmd_2 尚未执行。
这里的问题是 cmd_1 需要很长时间才能完成, cmd_2 具有破坏性,我真的不想中断并重新执行 cmd_1 。我只想 cmd_1 完成并且 cmd_2 根本不运行。
我可以通过将 cmd_2 移动到 cmd_2.sav 直到 cmd_1 完成并导致“-bash: cmd_2: command not found”导致 cmd_2 失败,但我希望有一个更优雅的解决方案。在 cmd_1 完成之前,其他人可能会使用 cmd_2。(是的,我可以将 cmd_2.real 包装在 cmd_2 包装器中,并带有用户测试或类似的东西,但这种方式很疯狂)。