是否有可能在不终止运行循环的 bash 实例的情况下终止 bash 中的循环?

是否有可能在不终止运行循环的 bash 实例的情况下终止 bash 中的循环?

假设我(在交互式 bash shell 中)执行一个循环,该循环按顺序产生一堆进程,如下所示。

for i in `seq 15 42`; do if [ -f F$i.flv.mp3 ]; then play F$i.flv.mp3; fi; done 

如果我用杀死当前进程Control-C,它将直接进入循环中的下一个进程,而我必须单独杀死由循环迭代启动的进程。

在不终止我的交互式 shell 的情况下,我可以阻止循环按顺序生成或更多进程吗?

答案1

在我的测试中Control-C中断了循环,但如果没有,我会Control-Z停止该作业,然后kill %1终止整个作业。

答案2

一般来说不是,但我知道将其添加到长时间运行的循环中:

if test -f /tmp/please-stop; then break; fi

相关内容