Πώς να χρησιμοποιήσετε την εντολή Linux "sleep" για να θέσετε σε παύση ένα BASH Script

Αυτός ο οδηγός δείχνει πώς να χρησιμοποιήσετε την εντολή ύπνου του Linux για να διακόψετε προσωρινά μια δέσμη ενεργειών bash.

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

Για παράδειγμα, φανταστείτε ότι είχατε ένα σενάριο που επεξεργάστηκε τα αρχεία που αντιγράφηκαν από άλλο διακομιστή. Το σενάριο δεν πρέπει να ξεκινήσει τη διαδικασία αντιγραφής μέχρι να ολοκληρωθεί η λήψη όλων των αρχείων.

Η διαδικασία λήψης εκτελείται από ένα εντελώς ξεχωριστό σενάριο.

Το σενάριο για την αντιγραφή των αρχείων μπορεί να περιέχει ένα βρόχο για να ελεγχθεί εάν έχουν ληφθεί όλα τα αρχεία (δηλαδή γνωρίζει ότι πρέπει να υπάρχουν 50 αρχεία και όταν έχουν βρεθεί 50 αρχεία, ξεκινάει η διαδικασία αντιγραφής).

Δεν έχει νόημα το σενάριο να δοκιμάζεται συνεχώς, καθώς απαιτεί χρόνο επεξεργαστή. Αντ 'αυτού, μπορείτε να επιλέξετε να ελέγξετε αν έχουν αρχειοθετηθεί αρκετά αρχεία και αν δεν υπάρχει παύση για λίγα λεπτά και στη συνέχεια προσπαθήστε ξανά. Η εντολή ύπνου είναι τέλεια σε αυτές τις περιπτώσεις.

Πώς να χρησιμοποιήσετε την εντολή ύπνου

Για να χρησιμοποιήσετε την εντολή ύπνου Linux, πληκτρολογήστε τα εξής στο παράθυρο του τερματικού:

ύπνο 5s

Η παραπάνω εντολή θα κάνει την τερματική παύση σας για 5 δευτερόλεπτα πριν επιστρέψετε στη γραμμή εντολών.

Η εντολή ύπνου απαιτεί τη λέξη-κλειδί ύπνου ακολουθούμενη από τον αριθμό που θέλετε να διακόψετε και στη συνέχεια τη μονάδα μέτρησης.

Μπορείτε να καθορίσετε την καθυστέρηση σε δευτερόλεπτα, λεπτά, ώρες ή ημέρες.

Όταν πρόκειται για ημέρες αναμονής για κάτι να συμβεί, ίσως αξίζει να εξετάσετε τη χρήση μιας εργασίας cron για να τρέξετε το σενάριο σε τακτά χρονικά διαστήματα, σε αντίθεση με το να έχετε ένα σενάριο που τρέχει στο παρασκήνιο για μέρες στο τέλος.

Ο αριθμός για την εντολή ύπνου δεν χρειάζεται να είναι ακέραιος αριθμός.

Μπορείτε επίσης να χρησιμοποιήσετε αριθμούς κυμαινόμενου σημείου.

Για παράδειγμα, είναι απολύτως εντάξει να χρησιμοποιήσετε την ακόλουθη σύνταξη:

ύπνο 3,5s

Ένα Παράδειγμα Χρήση για την εντολή ύπνου

Το παρακάτω σενάριο δείχνει πώς να χρησιμοποιήσετε την εντολή ύπνου για να κάνετε ένα ρολόι αντίστροφης μέτρησης με βάση το τερματικό:

#! / bin / bash

x = 10

ενώ [$ x -gt 0]

κάνω

sleep 1s

Σαφή

echo "$ x δευτερόλεπτα μέχρι έκρηξη"

x = $ (($ x - 1))

Έγινε

Η δέσμη ενεργειών ορίζει τη μεταβλητή x στο 10. Ο βρόχος while θα συνεχίσει να επαναλαμβάνει ενώ η τιμή του x είναι μεγαλύτερη από μηδέν.

Η εντολή ύπνου διακόπτει τη δέσμη ενεργειών για 1 δευτερόλεπτο κάθε φορά γύρω από τον βρόχο.

Το υπόλοιπο της δέσμης ενεργειών καθαρίζει την οθόνη κάθε επανάληψη, εμφανίζει το μήνυμα "x δευτερόλεπτα έως ότου εκπέσει" (δηλ. 10) και έπειτα αφαιρεί 1 από την τιμή του x.

Χωρίς την εντολή ύπνου, το σενάριο θα μεγεθύνεται και τα μηνύματα θα εμφανίζονται πολύ γρήγορα.

Η εντολή ύπνου έχει μόνο δύο διακόπτες.

Ο διακόπτης --help εμφανίζει το αρχείο βοήθειας για την εντολή ύπνου. Μπορείτε να επιτύχετε το ίδιο πράγμα χρησιμοποιώντας την εντολή man ως εξής:

άνθρωπος κοιμάται

Η εντολή --version εμφανίζει την έκδοση της εντολής ύπνου που είναι εγκατεστημένη στο σύστημά σας.

Οι πληροφορίες που επιστρέφει ο διακόπτης --version είναι οι εξής: