Android

Bash για βρόχο

Shell Scripting - For Loops

Shell Scripting - For Loops

Πίνακας περιεχομένων:

Anonim

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

Σε γλώσσες δέσμης ενεργειών όπως το Bash, οι βρόχοι είναι χρήσιμοι για την αυτοματοποίηση επαναλαμβανόμενων εργασιών.

Υπάρχουν τρεις βασικές κατασκευές βρόχου σε δέσμες ενεργειών Bash, για βρόχο, ενώ βρόχο και μέχρι βρόχο.

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

Το πρότυπο Bash για βρόχο

Ο κύκλος for iterates σε μια λίστα στοιχείων και εκτελεί το δεδομένο σύνολο εντολών.

Το Bash για βρόχο παίρνει την ακόλουθη μορφή:

for item in do done

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

Βρόχο πάνω σε χορδές

Στο παρακάτω παράδειγμα ο βρόχος θα επαναλάβει κάθε στοιχείο στη λίστα των συμβολοσειρών και το μεταβλητό element θα οριστεί στο τρέχον στοιχείο.

for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done

Ο βρόχος θα παράγει την ακόλουθη έξοδο:

Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium

Βρόχο σε μια περιοχή αριθμών

Μπορείτε να χρησιμοποιήσετε την έκφραση αλληλουχίας για να ορίσετε μια σειρά αριθμών ή χαρακτήρων, καθορίζοντας μια αρχή και ένα τελικό σημείο της περιοχής. Η έκφραση αλληλουχίας έχει την ακόλουθη μορφή:

{START..END}

Στο παρακάτω παράδειγμα ο βρόχος θα επαναλάβει όλους τους αριθμούς από 0 έως 3.

for i in {0..3} do echo "Number: $i" done

Number: 0 Number: 1 Number: 2 Number: 3

Ξεκινώντας από το Bash 4, είναι επίσης δυνατό να καθορίσετε μια αύξηση όταν χρησιμοποιείτε εύρη. Η έκφραση λαμβάνει την ακόλουθη μορφή:

{START..END..INCREMENT}

for i in {0..20..5} do echo "Number: $i" done

Number: 0 Number: 5 Number: 10 Number: 15 Number: 20

Βρόχος πάνω από στοιχεία πίνακα

Μπορείτε επίσης να χρησιμοποιήσετε το βρόχο for για να επαναλάβετε μια σειρά στοιχείων:

Στο παρακάτω παράδειγμα, ορίζουμε ένα BOOKS συστοιχιών και αναπαράγουμε πάνω από κάθε στοιχείο του πίνακα.

BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done

Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby

Το Bash στυλ C για βρόχο

Η σύνταξη του στυλ C για το βρόχο λαμβάνει την ακόλουθη μορφή:

for ((INITIALIZATION; TEST; STEP)) do done

Το τμήμα INITIALIZATION εκτελείται μόνο μία φορά όταν ξεκινά ο βρόχος. Στη συνέχεια αξιολογείται το τμήμα TEST . Εάν είναι λανθασμένη, ο βρόχος για τερμάτισε. Εάν η TEST είναι αληθής, εκτελούνται εντολές εντός του σώματος του for loop και ενημερώνεται το τμήμα STEP .

Στον ακόλουθο κώδικα, ο βρόχος αστέρες αρχικοποιώντας i = 0 , και πριν από κάθε επανάληψη ελέγχει αν i ≤ 10 . Εάν είναι αληθές, εκτυπώνει την τρέχουσα τιμή των i και i κατά 1 ( i++ ) διαφορετικά ο βρόχος τερματίζεται.

for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done

Ο βρόχος θα επαναλάβει 1001 φορές και θα παράγει την ακόλουθη έξοδο:

Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000

Διάλειμμα και Συνέχεια Δηλώσεις

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

Δήλωση Break

Η εντολή break διακόπτει τον τρέχοντα βρόχο και μεταβιβάζει το πρόγραμμα ελέγχου στη δήλωση που ακολουθεί την τερματισμένη δήλωση. Συνήθως χρησιμοποιείται για να τερματίσει τον βρόχο όταν πληρούται μια συγκεκριμένη συνθήκη.

Στο ακόλουθο παράδειγμα, χρησιμοποιούμε την εντολή if για να τερματίσει την εκτέλεση του βρόχου μόλις το τρέχον iterated στοιχείο είναι ίσο με το 'Lithium'.

for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'

Element: Hydrogen Element: Helium All Done!

Συνέχεια δήλωσης

Η εντολή continue συνεχίζει την τρέχουσα επανάληψη ενός βρόχου και περνά τον έλεγχο προγράμματος στην επόμενη επανάληψη του βρόχου.

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

for i in {1..5}; do if]; then continue fi echo "Number: $i" done

Number: 1 Number: 3 Number: 4 Number: 5

Παραδείγματα βρόχου για βρόχους

Μετονομασία αρχείων με κενά στο όνομα αρχείου

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

for file in *\ *; do mv "$file" "${file// /_}" done

Ας καταρρίψουμε τη γραμμή κώδικα κατά γραμμή:

  • Η πρώτη γραμμή δημιουργεί ένα for loop και επαναλαμβάνει μέσω μιας λίστας όλων των αρχείων με ένα κενό στο όνομά της. Η έκφραση *\ * δημιουργεί τη λίστα. Η δεύτερη γραμμή ισχύει για κάθε στοιχείο της λίστας και μετακινεί το αρχείο σε νέο, αντικαθιστώντας το χώρο με μια υπογράμμιση ( _ ). Το τμήμα ${file// /_} χρησιμοποιεί την επέκταση παραμέτρων κελύφους για να αντικαταστήσει ένα πρότυπο μέσα σε μια παράμετρο με μια συμβολοσειρά. done δείχνει το τέλος του τμήματος βρόχου.

Αλλαγή της επέκτασης αρχείου

Το παρακάτω παράδειγμα δείχνει τον τρόπο χρήσης του βρόχου Bash για να μετονομάσετε όλα τα αρχεία που λήγουν με το.jpeg στον τρέχοντα κατάλογο αντικαθιστώντας την επέκταση αρχείου από το.jpeg σε.jpg.

for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done

Ας αναλύσουμε την γραμμή κώδικα κατά γραμμή:

  • Η πρώτη γραμμή δημιουργεί ένα for loop και επαναλαμβάνει μέσω μιας λίστας όλων των αρχείων που τελειώνουν με '.jpeg'. Η δεύτερη γραμμή ισχύει για κάθε στοιχείο της λίστας και μετακινεί το αρχείο σε ένα νέο αντικαθιστώντας το '.jpeg' με το '.jpg'. ${file%.jpeg} για να καταργηθεί το τμήμα.jpeg από το όνομα αρχείου χρησιμοποιώντας την επέκταση παραμέτρου κελύφους που δείχνει το τέλος του τμήματος του βρόχου.

συμπέρασμα

Μέχρι τώρα θα πρέπει να έχετε μια καλή κατανόηση για το πώς να χρησιμοποιήσετε το bash για το βρόχο για να επαναλάβετε μέσω καταλόγων.

bash βρόχου