在Bash中停止并重新启动循环

时间:2017-06-17 14:12:39

标签: bash loops process

运行以下命令后......

$ for i in {1..10}; do sleep 3; echo $i; done

...如果我等了几秒钟然后点击 Ctl + Z ,那么我得到以下内容:

1
2
^Z
[1]+  Stopped                 sleep 3

现在,如果我使用fg恢复该过程,它将恢复循环的sleep 3部分,但不会完成循环:

$ fg
sleep 3
$

有没有办法停止这个过程,以便循环可以在以后继续?

1 个答案:

答案 0 :(得分:1)

正如其他提到的,您需要使用(for i in {1..10}; do sleep 3; echo $i; done)启动新的子shell 您可以使用ctrl + z暂停。如果运行jobs命令,则应该看到挂起的作业。然后通过fgbg命令

恢复

enter image description here

的jsfiddle:http://jsfiddle.net/lakshmipathi/chccLdLt/3/