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?

Respostas:


15

Sim, isso funcionaria.

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

  • sleep 15

  • Ctrl+z

  • fg; echo "it works"


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


1

Usando o waitcomando

$ sleep 10 &
[1] 29703
$ wait 29703 && echo hello
[1]+  Done                    sleep 10
hello
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.