Skip to main content

Πώς να χρησιμοποιήσετε την εντολή "ύπνου" του Linux για να διακόψετε προσωρινά τη δημιουργία ενός σεναρίου BASH

Πως μαθαίνουμε την εντολή "μείνε" και τι είναι η διάταση και συστροφή στομάχου.Εκπαίδευση σκύλου. (Απρίλιος 2024)

Πως μαθαίνουμε την εντολή "μείνε" και τι είναι η διάταση και συστροφή στομάχου.Εκπαίδευση σκύλου. (Απρίλιος 2024)
Anonim

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

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

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

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

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

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

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

ύπνο 5s

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

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

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

  • s - δευτερόλεπτα
  • m - λεπτά
  • h - ώρες
  • d - ημέρες

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

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

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

ύπνο 3,5s

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

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

#! / bin / bashx = 10ενώ $ x -gt 0κάνωsleep 1sΣαφήecho "$ x δευτερόλεπτα μέχρι έκρηξη"x = $ (($ x - 1))Έγινε

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

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

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

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

Διακόπτες

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

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

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

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

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

  • Αριθμός έκδοσης
  • Στοιχεία πνευματικών δικαιωμάτων
  • Αδεια
  • Συγγραφείς