Il valore di stato di uscita del comando di attesa dipende dal comando indicato dall'ultimo operando specificato. Quando qualsiasi processo termina in modo anomalo, lo stato di uscita sarà maggiore di 128 e sarà diverso dai valori di stato di uscita di altri comandi. Aspettare Il comando esce con il valore 0 quando chiama senza operandi e tutti gli ID di processo sono noti dalla shell corrente sono terminati. Se il comando di attesa rileva qualsiasi errore, restituisce un valore da 1 a 126. Se l'ultimo ID di processo è sconosciuto, attesa il comando di attesa con il valore 127. Come puoi usare il comando Wait in Linux è mostrato in questo tutorial.
Esempio-1: utilizzando il comando Wait per più processi
Dopo aver eseguito il seguente script, verranno eseguiti due processi in background e l'ID processo del primo comando Echo viene archiviato nella variabile $ process_id. Quando il comando wait viene eseguito con $ Process_id, il comando successivo attenderà a completare l'attività del primo comando Echo. Il secondo comando di attesa viene utilizzato con '$!'E questo indica l'ID processo dell'ultimo processo di esecuzione. '$?'viene utilizzato per leggere il valore di stato del comando di attesa.
#!/Bin/Bash
Echo "Test wait Command1" &
Process_id = $!
Echo "Test wait Command2" &
Aspetta $ Process_id
Echo Job 1 è uscito con lo stato $?
Aspetta $!
Echo Job 2 è uscito con lo stato $?
Produzione:
$ Bash Wait1.sh
Esempio-2: Test Wait Command dopo aver usato il comando Kill
Nel seguente script, il comando di attesa viene eseguito dopo aver terminato il processo. Il comando sleep è in esecuzione come processo in background e il comando kill viene eseguito per terminare il processo in esecuzione. Dopo quel comando di attesa viene eseguito con l'ID processo del processo terminato. L'output mostrerà l'ID processo del processo terminato.
#!/Bin/Bash
Echo "Test Wait Command"
Dormi 20 &
pid = $!
Uccidi $ pid
Aspetta $ PID
Echo $ pid è stato terminato.
Produzione:
$ Bash Wait2.sh
Esempio-3: controlla il valore di stato di uscita
Nel seguente script, la funzione controllo() è chiamato da due valori di argomento. Viene discusso nell'inizio del tutorial che se il comando di attesa eseguito correttamente il valore di uscita sarà 0 e se il comando di attesa rileva qualsiasi errore, restituirà un valore tra 1 e 126. Dopo aver eseguito lo script, se si passa 0 come secondo valore dell'argomento, l'attenzione del comando termina correttamente e se si passa un valore superiore a zero, quindi termina senza successo.
#!/Bin/Bash
Controllo della funzione ()
Echo "Dormi per $ 1 secondi"
Dormi $ 1
uscita $ 2
Controlla $ 1 $ 2 &
B = $!
Echo "controllando lo stato"
Aspetta $ b && echo ok || eco non ok
Produzione:
$ Bash Wait3.Sh 3 0
$ Bash Wait3.Sh 3 5
Spero, questo tutorial aiuterà a imparare correttamente il comando di attesa. C'è un altro comando in Linux, chiamato sonno aspettare per determinate quantità di volte, ma ci sono alcune differenze tra questi comandi. Se sei interessato a conoscere il comando sleep allora puoi visitare questo link.