[编辑:这看起来类似于其他一些询问如何杀死所有产生的进程的问题——答案似乎都是使用 pkill。所以我的问题的核心可能是:有没有办法将 Ctrl-C/Z 传播到脚本产生的所有进程?]
当rec
使用timeout
来自 coreutils的命令(在此处讨论)调用 SoX 时,一旦从 Bash 脚本中调用它,似乎没有任何方法可以通过击键杀死它。
例子:
timeout 10 rec test.wav
Run Code Online (Sandbox Code Playgroud)
...可以用Ctrl+C或Ctrl+Z从 bash杀死,但不能从脚本内部调用它。
timeout 10 ping nowhere
Run Code Online (Sandbox Code Playgroud)
...可以被杀死Ctrl+C或Ctrl+Z从庆典,并与Ctrl+Z当它在脚本中运行。
我可以找到进程 ID 并以这种方式杀死它,但为什么我不能使用标准的中断键击?有什么方法可以构建我的脚本以便我可以吗?