Σε αυτό το σεμινάριο, θα διερευνήσουμε την εντολή Bash Wait στο Linux.
Σύνταξη:
Η γενική σύνταξη της εντολής Wait στο Linux είναι:
περιμένετε [επιλογή] ID
Το αναγνωριστικό θα ήταν αναγνωριστικό διεργασίας ή αναγνωριστικό εργασίας.
Εξηγώντας την εντολή Bash Wait στο Linux:
Αρχικά, δημιουργήστε ένα αρχείο χρησιμοποιώντας την εντολή αφής:
$αφήBashWait.sh
Κάντε αυτό το αρχείο εκτελέσιμο χρησιμοποιώντας την παρακάτω εντολή:
$chmod+x όνομα αρχείου
Μόλις παραχωρηθούν τα εκτελέσιμα δικαιώματα στο αρχείο, ανοίξτε το αρχείο και γράψτε ένα σενάριο σε αρχείο bash:
#!/bin/bashύπνος 3 &
processID=$!
πέταξε έξω 'PID:$ processID'
Περίμενε $ processID
πέταξε έξω 'Κατάσταση εξόδου: $?'
$! είναι μια μεταβλητή στο BASH που αποθηκεύει το PID της πιο πρόσφατης διαδικασίας.
Τώρα, εκτελέστε το σενάριο ως εξής:
$./όνομα αρχείου$./BashWait.sh
Στο κέλυφος θα εμφανιστεί το αναγνωριστικό διεργασίας και η κατάσταση υπάρχουσας.
Χρησιμοποιώντας την επιλογή -n:
Με την επιλογή –n, η εντολή αναμονής περιμένει μόνο μια εργασία από το παρεχόμενο αναγνωριστικό διεργασίας ή τις προδιαγραφές εργασίας για να ολοκληρωθεί πριν επιστρέψει την κατάσταση εξόδου. Περιμένετε -n περιμένει να ολοκληρωθεί οποιαδήποτε εργασία στο παρασκήνιο και επιστρέφει την κατάσταση εξόδου εργασίας, εάν δεν παρέχονται ορίσματα.
Γράψτε τις παρακάτω γραμμές στο σενάριό σας:
#!/bin/bashύπνος 30 &
ύπνος 8 &
ύπνος 7 &
Περίμενε -ν
πέταξε έξω 'Η πρώτη δουλειά ολοκληρώθηκε.'
Περίμενε
πέταξε έξω 'Όλες οι εργασίες έχουν ολοκληρωθεί.'
Στη συνέχεια, εκτελέστε ξανά το σενάριο και όταν ολοκληρωθεί η πρώτη εργασία, θα εκτυπώσει το μήνυμα στο τερματικό και περιμένετε να ολοκληρωθούν όλες οι άλλες εργασίες.
Χρησιμοποιώντας την επιλογή –f:
Η επιλογή -f περιμένει να σταματήσει κάθε αναγνωριστικό διαδικασίας ή εργασία πριν επιστρέψει τον κωδικό εξόδου. Ο έλεγχος εργασιών είναι διαθέσιμος μόνο για αποκριτικές προτροπές από προεπιλογή.
Ανοίξτε το τερματικό και εκτελέστε την εντολή:
Περιμένετε τη διαδικασία 3944.
Ανοίξτε ένα διαφορετικό παράθυρο τερματικού και εκτελέστε την εντολή kill για να τερματίσετε τη διαδικασία.
Η κατάσταση θα αλλάξει. Η εντολή Wait θα ολοκληρώσει και θα επιστρέψει τον κωδικό εξόδου της διαδικασίας.
Επαναλάβετε τα παραπάνω βήματα με την εντολή –f.
Σενάριο με εντολή Wait:
Χρησιμοποιούμε σενάρια ‘hello.sh’ και ‘bash.sh’ για επίδειξη. Το σενάριο ‘hello.sh’ εκτυπώνει αριθμούς από 1 έως 5 και το σενάριο ‘bash.sh’ καλεί hello.sh και το εκτελεί στο παρασκήνιο, έχοντας το PID του hello.sh και περιμένοντας να τελειώσει.
Δημιουργήστε δύο σενάρια με το όνομα hello και bash:
Προσθέστε τις παρακάτω γραμμές στο αρχείο hello.sh:
#!/bin/bashΓιαΕγώσε 1 2 3 4 5 6 7 8 9 10
κάνω
πέταξε έξωhello.sh - αριθμός βρόχου$ iΤο
Έγινε
Προσθέστε τις παρακάτω γραμμές στο σενάριο bash:
#!/bin/bashπέταξε έξωΞεκίνησε το bash.sh
πέταξε έξωΞεκίνησε hello.sh
Το/γεια.σ&
process_id=$!
Περίμενε $ process_id
πέταξε έξωΟλοκληρώθηκε hello.sh
Παραγωγή:
Συμπέρασμα:
Όταν ένας χρήστης θέλει να σταματήσει μια διαδικασία, το σύστημα απελευθερώνει όλους τους πόρους που διατηρούνται από τη διαδικασία και περιμένει να ξεκινήσει άλλος. Θα πρέπει να ειδοποιήσουμε τη διαδικασία ότι μπορεί να επανεκκινήσει την εκτέλεση μόλις ολοκληρωθούν οι άλλες διαδικασίες. Η εντολή αναμονής στο bash περιμένει να ολοκληρωθεί η εκτέλεση και επιστρέφει την κατάσταση εξόδου όταν ολοκληρωθεί η εκτέλεση της διαδικασίας. Σε αυτό το εγχειρίδιο, έχουμε δει μερικά παραδείγματα της εντολής αναμονής Bash στο Linux.