在 Bash 中,偶尔我会输入一个命令列表并点击Enter,然后才意识到列表末尾附近的某个命令有错误。我知道如果我按Ctrl+C它将终止当前正在运行的命令并取消列表的其余部分。有没有办法在不终止当前运行的命令的情况下取消列表的其余部分?
例如,假设我输入了类似
foo; bar
Run Code Online (Sandbox Code Playgroud)
或者
foo && bar
Run Code Online (Sandbox Code Playgroud)
wherefoo是一个长时间运行的命令,不要中断非常重要,并且会bar执行一些不可逆和不需要的操作(例如,shutdown -h now或rm -rf /)。在foo仍在运行时,是否有一种通用的方法可以告诉外壳让foo完成但bar之后不运行?(是的,我可以更改权限bar,使其不可执行,但如果我想同时使用bar类似的东西,这不是特别方便rm,如果我不拥有bar或者bar是内置的,它也不会工作。)