Bash: Дождитесь завершения текущей команды, но не запускайте больше команд

Я скопировал список несколько долго выполняющихся команд в оболочке bash и нажал Enter. Теперь команды выполняются последовательно.

Например:

train_agi.sh
find_meaning_of_life.sh
destroy_universe.sh

Теперь я хочу, чтобы текущая команда завершилась, но последующие команды были прерваны.

Как лучше всего этого добиться? Я думал о завершении работы оболочки, но не уверен.

0
задан 6 April 2021 в 13:17

1 ответ

У вас должна быть возможность приостановить все команды, используя Ctrl + Z столько раз, сколько есть команд в очереди, а затем убить те, которые вы не хотите запускать. Затем вы можете возобновить выполнение первой команды, вернув ее задание на передний план, используя 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
-
1
ответ дан 23 April 2021 в 23:25

Другие вопросы по тегам:

Похожие вопросы: