Quando e perché abbiamo bisogno del comando `wait` su bash?

Sep 17 2020

La shell bash non esegue già i comandi uno per uno e attende che il comando eseguito finisca? Quindi quando e perché abbiamo bisogno del waitcomando?

Risposte

34 Archemar Sep 18 2020 at 05:30

Si utilizza waitse sono state avviate attività in background, ad es

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

In questo esempio lo script avvia tre attività in background. Questi verranno eseguiti contemporaneamente in background e waitaspetteranno il completamento di tutte e tre le attività. Una volta waitrestituito, lo script continua con l'elaborazione del file echo done.


Come sottolineato nel commento, waitpuò essere assegnato un numero di lavoro ( wait %3) o un pid ( wait 1234). Sebbene sia facile (usando jobo ps) nella bash interattiva trovarli, potrebbe essere più difficile in modalità batch.