como enfileirar um comando para executar após a conclusão de outro comando?

9

Às vezes, inicio um programa que leva muito tempo para terminar ( emerge), depois percebo que devo ir para a cama em vez de esperar por ele. Se eu souber disso em primeiro lugar, eu correria

program; halt

No entanto, agora que eu já iniciei o programa, como posso "agendar" o computador para desligar quando esse processo terminar? Seria Ctrl+zentão fg; haltbom?

phunehehe
fonte

Respostas:

15

Sim, isso funcionaria.

Se não tiver certeza, você pode testá-lo com

  • sleep 15

  • Ctrl+z

  • fg; echo "it works"

mru
fonte
2

Outra maneira é apenas digitar haltseu terminal enquanto o primeiro comando estiver em execução; desde que o primeiro comando não leia a entrada em algum momento, ele ficará no buffer do terminal e o shell a lerá quando o primeiro programa terminar

Michael Mrozek
fonte
1

Usando o waitcomando

$ sleep 10 &
[1] 29703
$ wait 29703 && echo hello
[1]+  Done                    sleep 10
hello
Gaius
fonte