
Τι να ξέρετε
- Χρησιμοποιήστε το ύπνος εντολή συν μια ώρα? μικρό=δευτερόλεπτα, Μ=λεπτά, η=ώρες, ή ρε=μέρες (για παράδειγμα, κοιμηθείτε 5 δευτερόλεπτα παύει το σενάριο για 5 δευτερόλεπτα).
- Χρήση άντρας ύπνο για περισσότερα.
Αυτό το άρθρο εξηγεί πώς να χρησιμοποιήσετε την εντολή ύπνου Linux για παύση σεναρίου bash, μεταξύ άλλων. Από μόνη της, η εντολή ύπνου δεν είναι πολύ χρήσιμη. Ωστόσο, ως μέρος ενός σεναρίου, μπορεί να χρησιμοποιηθεί με πολλούς τρόπους. Για παράδειγμα, μπορείτε να το χρησιμοποιήσετε για παύση του σεναρίου πριν δοκιμάσετε ξανά μια εντολή που απέτυχε την πρώτη φορά.
Ένα παράδειγμα χρήσης της εντολής ύπνου
Φανταστείτε ότι έχετε ένα σενάριο που επεξεργάζεται αρχεία που έχουν ληφθεί από άλλον διακομιστή. Το σενάριο δεν πρέπει να ξεκινήσει τη διαδικασία αντιγραφής έως ότου ολοκληρωθεί η λήψη όλων των αρχείων. Η διαδικασία λήψης εκτελείται από ένα ξεχωριστό σενάριο που εκτελείται πριν από το δικό σας. Το σενάριο που αντιγράφει τα αρχεία ενδέχεται να περιέχει ένα βρόχο για να ελέγξει εάν έχουν ληφθεί όλα τα αρχεία (το κάνει αυτό ελέγχοντας εάν βρέθηκαν 50 αρχεία πριν ξεκινήσει η διαδικασία αντιγραφής). Δεν υπάρχει νόημα στη δοκιμή σεναρίων συνεχώς, καθώς αυτό χρησιμοποιεί χρόνο επεξεργαστή. Αντ ‘αυτού, μπορείτε να κάνετε παύση για λίγα λεπτά μεταξύ κάθε δοκιμής πριν δοκιμάσετε ξανά. Η εντολή ύπνου είναι τέλεια σε τέτοιες περιπτώσεις.
Πώς να χρησιμοποιήσετε την εντολή ύπνου
Για να χρησιμοποιήσετε την εντολή ύπνου Linux, εισαγάγετε τα ακόλουθα στο παράθυρο τερματικού: sleep 5s
class = «ql-syntax»> Η παραπάνω εντολή κάνει το τερματικό παύση για 5 δευτερόλεπτα πριν επιστρέψει στη γραμμή εντολών. Η εντολή ύπνου απαιτεί τη λέξη-κλειδί ύπνος, ακολουθούμενο από τον αριθμό που θέλετε να θέσετε σε παύση και τη μονάδα μέτρησης. Μπορείτε να καθορίσετε την καθυστέρηση σε δευτερόλεπτα, λεπτά, ώρες ή ημέρες.
- μικρό: Δευτερόλεπτα
- Μ: Λεπτά
- η: Ωρες
- ρε: Μέρες
Όταν πρόκειται για παύση ενός σεναρίου για ημέρες, χρησιμοποιήστε μια εργασία cron για να εκτελέσετε το σενάριο σε τακτά χρονικά διαστήματα, σε αντίθεση με την εκτέλεση ενός σεναρίου στο παρασκήνιο για ημέρες. Η εργασία cron είναι μια εντολή ή σενάριο Linux που μπορείτε να προγραμματίσετε για εκτέλεση σε μια καθορισμένη ώρα ή ημέρα. Αυτά είναι χρήσιμα για την επανάληψη εργασιών για μεγάλο χρονικό διάστημα. Ο αριθμός για το διάστημα εντολών ύπνου δεν πρέπει να είναι ακέραιος αριθμός. Μπορείτε επίσης να χρησιμοποιήσετε αριθμούς κινητής υποδιαστολής.
Για παράδειγμα, η ακόλουθη σύνταξη περιλαμβάνει ένα κλάσμα του δευτερολέπτου: sleep 3,5s
class = «ql-σύνταξη»>
Ένα παράδειγμα χρήσης της εντολής ύπνου
Το παρακάτω σενάριο δείχνει πώς να χρησιμοποιήσετε την εντολή ύπνου για να δημιουργήσετε ένα ρολόι αντίστροφης μέτρησης που βασίζεται σε τερματικό: #! / Bin / bash
x = 10
ενώ [ $x -gt 0 ]
κάνω
ύπνος 1 δευτερόλεπτο
Σαφή
ηχώ «$ x δευτερόλεπτα έως ότου εκραγεί»
x = $ (($ x – 1))
Ολοκληρώθηκε
class = «ql-syntax»> Δείτε πώς λειτουργεί αυτό το σενάριο:
- Το σενάριο ορίζει τη μεταβλητή x σε 10.
- Ο βρόχος while συνεχίζει να επαναλαμβάνεται ενώ η τιμή του x είναι μεγαλύτερη από το μηδέν.
- Η εντολή ύπνου διακόπτει το σενάριο για 1 δευτερόλεπτο κάθε φορά γύρω από το βρόχο.
- Το υπόλοιπο σενάριο διαγράφει την οθόνη κάθε επανάληψης, εμφανίζει το μήνυμα, «x δευτερόλεπτα έως το σβήσιμο» και αφαιρεί το 1 από την τιμή του x.
Χωρίς την εντολή ύπνου, το σενάριο θα μεγεθύνεται και τα μηνύματα θα εμφανίζονται πολύ γρήγορα.
Τρόπος χρήσης διακοπτών εντολών ύπνου
Η εντολή ύπνου έχει μόνο δύο διακόπτες. ο –βοήθεια ο διακόπτης εμφανίζει το αρχείο βοήθειας για την εντολή ύπνου. Μπορείτε να επιτύχετε το ίδιο πράγμα χρησιμοποιώντας την εντολή man ως εξής: man sleep
type = «code»> Το –εκδοχή ο διακόπτης εμφανίζει την έκδοση της εντολής ύπνου που είναι εγκατεστημένη στο σύστημα. Οι πληροφορίες που επιστρέφονται από το διακόπτη –versi είναι οι εξής:
- Αριθμός έκδοσης
- Λεπτομέρειες πνευματικών δικαιωμάτων
- Αδεια
- Συγγραφείς
Παύση εντολών τερματικού με αναστολή λειτουργίας
Μια άλλη καλή χρήση για την εντολή ύπνου είναι να διακόψετε τις εντολές που πληκτρολογείτε στο παράθυρο τερματικού. Εάν θέλετε, μπορείτε να πληκτρολογήσετε δύο εντολές στη σειρά, περιμένοντας να ολοκληρωθεί η πρώτη πριν πληκτρολογήσετε τη δεύτερη. Ωστόσο, μια πιο γρήγορη προσέγγιση είναι να πληκτρολογήσετε τις δύο εντολές σε μία γραμμή, με μια εντολή αναστολής μεταξύ κάθε εντολής: $ cd / mydirectory / && sleep 3 && ls
type = «code»> Πώς λειτουργεί αυτή η εντολή:
- ο cd / mydirectory / Η εντολή αλλάζει τον κατάλογο.
- ο ύπνος 3 Η εντολή περιμένει τρία δευτερόλεπτα για να ολοκληρωθεί η εντολή cd.
- ο είναι Η εντολή εκτελεί και εμφανίζει τα περιεχόμενα του καταλόγου.
Για ένα απλό παράδειγμα σαν αυτό, η εντολή ύπνου εξοικονομεί λίγο χρόνο. Ωστόσο, εάν έχετε μια μεγάλη λίστα εντολών, η δυνατότητα πληκτρολόγησης των εντολών σε μία γραμμή εξοικονομεί χρόνο.