como enfileirar um comando para executar depois que outro comando terminar?

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 sei disso em primeiro lugar, eu corro

program; halt

No entanto, agora que já iniciei o programa, como posso "agendar" o computador para ser encerrado quando esse processo for concluído? Ctrl+z then fg; halt estaria OK?

    
por phunehehe 01.10.2010 / 20:50

3 respostas

15

Sim, isso funcionaria.

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

  • sleep 15

  • Ctrl + z

  • fg; echo "it works"

por 01.10.2010 / 20:53
2

Outra maneira é apenas digitar halt no seu terminal enquanto o primeiro comando está em execução; contanto que o primeiro comando não leia a entrada em algum momento, ele ficará no buffer do terminal e o shell irá lê-lo quando o primeiro programa terminar

    
por 03.10.2010 / 05:08
1

Usando o comando wait

$ sleep 10 &
[1] 29703
$ wait 29703 && echo hello
[1]+  Done                    sleep 10
hello
    
por 15.04.2014 / 11:49