我可以修改或者预先终止正在运行的以 ; 分隔的复合 bash 命令的一部分吗?

我可以修改或者预先终止正在运行的以 ; 分隔的复合 bash 命令的一部分吗?

我正在运行多个以分号分隔的 bash 命令:

% long-running-command-I-want ; another-command-I-dont

long-running-command-I-want仍在运行;当然还没有。pidanother-command-I-dont想先发制人地杀死/取消/阻止执行,而不another-command-I-dont杀死long-running-command-I-want我等待已久的。我可以这样做吗?如果可以,怎么做?

答案1

bash如果您运行另一个 shell,则可以找出正在运行要继续的程序的 PID 。如果是bashPID,则使用以下命令发送中断信号:

kill -2 bashPID

这将停止其余命令行的执行。

您也可以在原始 shell 中输入Ctrl-z以暂时在后台暂停正在运行的程序。这将继续执行其余的命令行,这些命令行将被中断信号刷新。然后,您可以使用fg或恢复正在运行的程序bg,具体取决于您希望它在前台还是后台继续运行。

相关内容