Aspetta comando in Linux

Aspetta comando in Linux
Aspettare è un comando incorporato di Linux che attende di completare qualsiasi processo di esecuzione. Aspettare Il comando viene utilizzato con un particolare ID di processo o ID lavoro. Quando sono in esecuzione più processi nella shell, solo l'ID processo dell'ultimo comando sarà noto dalla shell corrente. Se il comando wait viene eseguito questa volta, verrà applicato per l'ultimo comando. Se non viene dato alcun ID di processo o ID lavoro con il comando Wait, aspetterà che tutti i processi di figlio attuali siano completati e restituirà lo stato di uscita.

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.