Wait (Unix)

Η εντολή wait περιμένει μέχρι να τελειώσει μια διεργασία που εκτελείται στο παρασκήνιο.

Χρήση 
 wait [n]

όπου n είναι το αναγνωριστικό της διεργασίας (pid) που εκτελείται ή ο κωδικός της (job ID). Αν δε δίνεται το n, η εντολή περιμένει μέχρι να τελειώσουν όλες οι διεργασίες που είναι γνωστές στο κέλυφος.

Η wait συνήθως επιστρέφει την κατάσταση εξόδου της τελευταίας διεργασίας που τερματίστηκε. Μπορεί επίσης να επιστρέψει 127 αν το n ορίζει μια διεργασία που δεν υπάρχει, ή 0 αν δεν υπάρχουν διεργασίες.

Επειδή η wait πρέπει να γνωρίζει τις διεργασίες του τρέχοντος περιβάλλοντος του κελύφους, συνήθως υλοποιείται σαν ενσωματωμένη εντολή του κελύφους.

Παράδειγμα 
Η παρακάτω εντολή είναι χρήσιμη όταν τμήμα ενός σεναρίου μπορεί να εκτελεστεί παράλληλα αλλά πρέπει να οριστεί ένα σύνορο, η εκτέλεση μετά το οποίο να εξαρτάται από την επιτυχή εκτέλεση του κώδικα πριν από αυτό. Πρώτα γίνεται λήψη του φακέλου src/ από έναν υπολογιστή με το όνομα iona μέσω της εντολής rsync και ταυτόχρονα ανανεώνονται οι βιβλιοθήκες από τις οποίες εξαρτάται το πρόγραμμα, πριν κατασκευαστεί ο συνδυασμός τους.

#!/bin/bash

# Σενάριο παράλληλης ανανέωσης που χρησιμοποιεί την εντολή wait

# Ανανεώνει το τοπικό αντίγραφο
rsync iona:src/ . &
# Αναβαθμίζει τις απαιτούμενες βιβλιοθήκες, ή τερματίζει για να δείξει κάποιο σφάλμα στην εκτέλεση της εντολής make
make -C lib || exit 1

# Περιμένει να τελειώσει η rsync (κάτι το οποίο μπορεί να έχει ήδη γίνει) και τερματίζει τη διεργασία, εκτός και αν απέτυχε η rsync
wait && make

Δείτε επίσης 
 Κατάλογος βοηθημάτων του Unix
 Wait (κλήση συστήματος)

Εξωτερικοί σύνδεσμοι 

 Εγχειρίδιο αναφοράς του GNU bash 

Unix