假设我(在交互式 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