我将几个长时间运行的命令列表复制到 bash shell 中并按下 Enter。现在命令正在按顺序执行。
例如:
train_agi.sh
find_meaning_of_life.sh
destroy_universe.sh
现在我希望当前命令完成,但后续命令被中止。
实现此目的的最佳方法是什么?我正在考虑终止 shell,但我不确定。
答案1
你应该能够暂停所有命令,使用 Ctrl+Z 执行排队命令的次数,然后执行kill
您不想运行的命令。然后,您可以使用 将其作业放回到前台fg
(或者bg
,如果您愿意,可以使用 将其放在后台)来恢复第一个命令。
为了显示:
$ /bin/sleep 300 ; /bin/sleep 200 ; /bin/sleep 100
^Z
[1]+ Stopped /bin/sleep 300
^Z
[2]+ Stopped /bin/sleep 200
^Z
[3]+ Stopped /bin/sleep 100
steeldriver@DESKTOP-SPDO14V:~$
steeldriver@DESKTOP-SPDO14V:~$ jobs
[1] Stopped /bin/sleep 300
[2]- Stopped /bin/sleep 200
[3]+ Stopped /bin/sleep 100
steeldriver@DESKTOP-SPDO14V:~$
steeldriver@DESKTOP-SPDO14V:~$ kill %2 %3
[2]- Terminated /bin/sleep 200
[3]+ Terminated /bin/sleep 100
steeldriver@DESKTOP-SPDO14V:~$
steeldriver@DESKTOP-SPDO14V:~$ fg %1
/bin/sleep 300
-