Quando e por que precisamos do comando `wait` no bash?

Sep 17 2020

O shell bash já executa os comandos um por um e espera que o comando executado termine? Então, quando e por que precisamos do waitcomando?

Respostas

34 Archemar Sep 18 2020 at 05:30

Você usa waitse tiver iniciado tarefas em segundo plano, por exemplo

#!/bin/bash
task1 &
task2 &
task3 &
wait
echo done

Neste exemplo, o script inicia três tarefas em segundo plano. Eles serão executados simultaneamente em segundo plano e waitaguardarão a conclusão das três tarefas. Assim que waitretornar, o script continuará processando o echo done.


Conforme apontado no comentário, waitpode ser fornecido um número de trabalho ( wait %3) ou um pid ( wait 1234). Embora seja fácil (usando jobou ps) no bash interativo para encontrá-los, pode ser mais difícil no modo em lote.