In questo tutorial, esploreremo il comando Bash Wait in Linux.
Sintassi:
La sintassi generale del comando Wait in Linux è:
aspetta [opzione] ID
ID sarebbe un ID processo o ID lavoro.
Spiegazione del comando Bash Wait in Linux:
Innanzitutto, crea un file utilizzando il comando touch:
$toccoBashWait.sh
Rendi questo file eseguibile utilizzando il comando seguente:
$chmod+x nome file
Una volta concessi i privilegi eseguibili al file, apri il file e scrivi uno script nel file bash:
#!/bin/bashdormire 3 &
IDprocesso=$!
buttato fuori 'PID:$processID'
aspettare $processID
buttato fuori 'Stato di uscita: $?'
$! è una variabile in BASH che memorizza il PID del processo più recente.
Ora, esegui lo script come segue:
$./nome del file$./BashWait.sh
L'ID del processo e lo stato Exist appariranno nella shell.
Usando l'opzione –n:
Con l'opzione –n, il comando wait attende solo il completamento di un singolo lavoro dall'ID processo fornito o dalle specifiche del lavoro prima di restituire il suo stato di uscita. Wait -n attende il completamento di qualsiasi lavoro in background e restituisce lo stato di uscita del lavoro se non vengono forniti argomenti.
Scrivi le righe indicate di seguito nel tuo script:
#!/bin/bashdormire 30 &
dormire 8 &
dormire 7 &
aspettare -n
buttato fuori 'Il primo lavoro è stato completato.'
aspettare
buttato fuori 'Tutti i lavori sono stati completati.'
Quindi, esegui nuovamente lo script e quando il primo lavoro sarà completato, stamperà il messaggio sul terminale e attenderà il completamento di tutti gli altri lavori.
Usando l'opzione –f:
L'opzione -f attende l'arresto di ogni ID processo o lavoro prima di restituire il codice di uscita. Per impostazione predefinita, il controllo del lavoro è disponibile solo per i prompt reattivi.
Apri il terminale ed esegui il comando:
Attendi il processo 3944.
Apri una finestra di terminale diversa ed esegui il comando kill per terminare il processo.
Lo stato verrà modificato. Il comando Wait completerà e restituirà il codice di uscita del processo.
Ripetere i passaggi sopra indicati con il comando -f.
Script con comando Wait:
Stiamo usando gli script 'hello.sh' e 'bash.sh' per la dimostrazione. Lo script 'hello.sh' stampa i numeri da 1 a 5 e lo script 'bash.sh' chiama hello.sh e lo esegue in background, avendo il PID di hello.sh e aspettando che finisca.
Crea due script con il nome hello e bash:
Aggiungi le righe indicate di seguito nel file hello.sh:
#!/bin/bashperioin 1 2 3 4 5 6 7 8 9 10
fare
buttato fuoriciao.sh – Numero di loop$i.
fatto
Aggiungi le righe indicate di seguito nello script bash:
#!/bin/bashbuttato fuoriAvviato bash.sh
buttato fuoriIniziato ciao.sh
./ciao.sh&
id_processo=$!
aspettare $process_id
buttato fuoriCiao.sh . completato
Produzione:
Conclusione:
Quando un utente desidera interrompere un processo, il sistema rilascia tutte le risorse mantenute dal processo e attende l'avvio di un altro. Avremo bisogno di notificare al processo che può riavviare l'esecuzione una volta completati gli altri processi. Il comando wait in bash attende di completare l'esecuzione e restituisce lo stato di uscita al termine dell'esecuzione del processo. In questo manuale abbiamo visto alcuni esempi del comando Bash wait in Linux.