Δημιουργήστε τη γραμμή προόδου στο Bash

Demiourgeste Te Gramme Proodou Sto Bash



Όταν απαιτείται να περιμένετε για ένα σταθερό χρονικό διάστημα κατά την εκτέλεση ενός σεναρίου, είναι προτιμότερο να δημιουργήσετε μια γραμμή προόδου για να ενημερώσετε τον χρήστη να περιμένει για κάποιο χρονικό διάστημα. Η γραμμή προόδου μπορεί να δημιουργηθεί χρησιμοποιώντας ένα απλό σενάριο Bash ή χρησιμοποιώντας ορισμένες ενσωματωμένες εντολές Linux όπως 'cv', 'dialog' κ.λπ. Οι μέθοδοι δημιουργίας γραμμών προόδου χρησιμοποιώντας ένα σενάριο Bash παρουσιάζονται σε αυτό το σεμινάριο.

Διαφορετικά παραδείγματα δημιουργίας γραμμής προόδου στο Bash

Οι διαφορετικοί τρόποι υλοποίησης μιας γραμμής προόδου στο Bash εμφανίζονται σε αυτό το μέρος του σεμιναρίου.

Παράδειγμα 1: Υλοποιήστε μια απλή γραμμή προόδου χωρίς καμία εντολή

Δημιουργήστε ένα αρχείο Bash με την ακόλουθη δέσμη ενεργειών που εμφανίζει μια γραμμή προόδου χρησιμοποιώντας τον χαρακτήρα '#' και την εντολή 'sleep'. Η εντολή 'printf' χρησιμοποιείται εδώ για την εμφάνιση της γραμμής προόδου. Η γραμμή προόδου χωρίζεται σε τέσσερα μέρη. Το 25% εμφανίζεται μετά από 1 δευτερόλεπτο. Το 50% εμφανίζεται μετά από 3 δευτερόλεπτα. Το 75% εμφανίζεται μετά από 2 δευτερόλεπτα. Το 100% εμφανίζεται μετά από 1 δευτερόλεπτο.







#!/bin/bash

printf ' \n Περιμένετε να ολοκληρώσετε την εργασία... \n \n '

#Περιμένετε για 1 δευτερόλεπτο

ύπνος 1

#Εκτυπώστε το πρώτο μέρος της γραμμής προόδου

printf '[##### ] 25%% ολοκληρώθηκε. \r '

#Περιμένετε για 3 δευτερόλεπτα

ύπνος 3

#Εκτυπώστε το δεύτερο μέρος της γραμμής προόδου

printf '[########## ] 50%% ολοκληρώθηκε. \r '

#Περιμένετε 2 δευτερόλεπτα

ύπνος 2

#Εκτυπώστε το τρίτο μέρος της γραμμής προόδου

printf '[############### ] 75%% ολοκληρώθηκε. \r '

#Περιμένετε για 1 δευτερόλεπτο

ύπνος 1

#Εκτυπώστε το τελευταίο της γραμμής προόδου

printf '[####################] 100%% ολοκληρώθηκε. \r '

printf ' \n \n Η εργασία ολοκληρώθηκε. \n \n '

.



Η ακόλουθη έξοδος εμφανίζεται μετά από 1 δευτερόλεπτο από την εκτέλεση του σεναρίου:







Η ακόλουθη έξοδος εμφανίζεται μετά από 7 δευτερόλεπτα από την εκτέλεση του σεναρίου:



Παράδειγμα 2: Υλοποιήστε τη γραμμή προόδου χρησιμοποιώντας την εντολή 'Pv'.

Η πλήρης μορφή της εντολής 'pv' είναι 'pipe viewer'. Χρησιμοποιείται για την παρακολούθηση της προόδου των δεδομένων που διέρχονται μέσω του σωλήνα και την εμφάνιση της γραμμής προόδου με βάση το μέγεθος των δεδομένων. Αυτή η εντολή δεν είναι εγκατεστημένη από προεπιλογή στο σύστημα. Εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε την εντολή 'pv' πριν εξασκήσετε το σενάριο αυτού του παραδείγματος:

$ sudo κατάλληλος εγκαθιστώ pv

Πρέπει να επιλέξετε ένα αρχείο μεγάλου μεγέθους που να αντιγράφεται από μια τοποθεσία σε άλλη τοποθεσία. Δημιουργήστε ένα αρχείο Bash με την ακόλουθη δέσμη ενεργειών που αντιγράφει το αρχείο 'test.txt' από την τρέχουσα θέση στη θέση '/home/fahmida/temp/'. Η εντολή 'pv' χρησιμοποιείται εδώ για την εμφάνιση της γραμμής προόδου. Η γραμμή προόδου εμφανίζεται με βάση το μέγεθος του αρχείου 'test.txt'.

#!/bin/bash

ηχώ 'Αντιγραφή αρχείου από μια τοποθεσία σε άλλη τοποθεσία.'

#Περιμένετε 2 δευτερόλεπτα

ύπνος 2

#Αντιγράψτε το αρχείο στον προορισμό

Γάτα test.txt | pv -μικρό $ ( stat -ντο % s test.txt ) > / Σπίτι / κατανόηση / θερμοκρασία / test.txt

ηχώ 'Το αρχείο έχει αντιγραφεί.'

Μετά την ολοκλήρωση της εκτέλεσης του σεναρίου εμφανίζεται η ακόλουθη έξοδος:

Παράδειγμα 3: Υλοποιήστε τη γραμμή προόδου χρησιμοποιώντας την εντολή 'Dialog'.

Ένας άλλος τρόπος υλοποίησης μιας γραμμής προόδου στο Bash είναι η χρήση της εντολής 'διάλογος'. Αυτή η εντολή μπορεί να χρησιμοποιηθεί για την εμφάνιση μιας όμορφης γραμμής προόδου στο τερματικό. Πολλοί τύποι γραφικών στοιχείων μπορούν να εμφανιστούν χρησιμοποιώντας αυτήν τη γραμμή προόδου. Η εργασία της γραμμής προόδου που εμφανίζεται με αυτήν την εντολή μπορεί να ελεγχθεί από τη δέσμη ενεργειών Bash. Αυτή η γραμμή προόδου δεν είναι εγκατεστημένη στο σύστημα από προεπιλογή. Εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε αυτήν τη γραμμή προόδου στο σύστημα:

$ sudo κατάλληλος εγκαθιστώ διαλόγου

Δημιουργήστε ένα αρχείο Bash με την ακόλουθη δέσμη ενεργειών που εμφανίζει μια γραμμή προόδου χρησιμοποιώντας την εντολή 'διάλογος'. Η εργασία αντιγραφής του αρχείου '/etc/passwd' στη θέση '/home/fahmida/tempdir' εμφανίζεται χρησιμοποιώντας μια γραμμή προόδου. Η γραμμή προόδου χωρίζεται σε πέντε μέρη. κάθε μέρος εμφανίζεται μετά από 2 δευτερόλεπτα. Η επιλογή –title χρησιμοποιείται στην εντολή “dialog” για να εμφανιστεί ο τίτλος της γραμμής προόδου. Η επιλογή –gauge χρησιμοποιείται στην εντολή «διάλογος» για την εμφάνιση της γραμμής προόδου με ύψος 10 γραμμών και πλάτος 100 χαρακτήρων. Το μήνυμα 'Αναμονή για την ολοκλήρωση της εργασίας' εμφανίζεται πάνω από τη γραμμή προόδου.

#!/bin/bash

#Αρχικοποιήστε τον μετρητή

current_pos = 0

(

#Ορίστε έναν άπειρο βρόχο

Για ( ( ;; ) )

κάνω

Γάτα <<ΕΟΦ

οριοθέτης

$current_pos

#Εμφάνιση της τρέχουσας τιμής μετρητή

cp /etc/passwd στο /home/fahmida/tempdir ( $current_pos%):

οριοθέτης

ΕΟΦ


#Αυξήστε τον μετρητή κατά 20

( ( τρέχον_pos+= είκοσι ) )

#Τερματισμός από τον βρόχο όταν η τιμή του μετρητή είναι μεγαλύτερη από 100

[ $current_pos -gt 100 ] && Διακοπή

#Περιμένετε 2 δευτερόλεπτα μετά από κάθε αύξηση

ύπνος 2

Έγινε

) | διαλόγου --τίτλος 'Αντιγραφή αρχείου...' --μετρητής 'Περιμένω να ολοκληρώσω την εργασία' 10 100 0


Η ακόλουθη έξοδος εμφανίζεται μετά από 6 δευτερόλεπτα από την εκτέλεση του σεναρίου:


Η ακόλουθη έξοδος εμφανίζεται μετά από 10 δευτερόλεπτα από την εκτέλεση του σεναρίου:


συμπέρασμα

Οι διαφορετικοί τρόποι ανάπτυξης μιας γραμμής προόδου χρησιμοποιώντας μια δέσμη ενεργειών Bash παρουσιάζονται σε αυτό το σεμινάριο για να βοηθήσουν τους χρήστες του Bash να χρησιμοποιήσουν τη γραμμή προόδου στο πρόγραμμά τους.