Como posso suspender uma sequência inteira de comandos em um shell?

5

Como posso suspender uma sequência inteira de comandos no bash ou zsh (ou talvez algum outro shell)?

Por exemplo, se eu corro:

sleep 100; echo foo

e pressione Ctrl + Z , sleep está suspenso e colocado em segundo plano, mas echo então corre imediatamente.

Eu gostaria que o último não acontecesse, ou seja echo deve correr depois sleep foi retomado e concluído.

parfluid
fonte

Respostas:

6

Execute-os a partir do subshell:

( sleep 100 ; echo foo ; )

E ctrl + z congelará todo o subshell, não apenas um comando:

^Z
[1]+  Stopped                 ( sleep 100; echo foo ; )
rush
fonte