Android

Bash ενώ βρόχος

SUPER-VILLAIN-BOWL! - TOON SANDWICH

SUPER-VILLAIN-BOWL! - TOON SANDWICH

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

Anonim

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

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

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

Bash ενώ Loop

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

Ο κύκλος Bash while loop έχει την ακόλουθη μορφή:

while do done

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

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

i=0 while do echo Number: $i ((i++)) done

Tue loop επαναλαμβάνει όσο είμαι λιγότερο ή ίσος από δύο. Θα παράγει την ακόλουθη έξοδο:

Number: 0 Number: 1 Number: 2

Άπειρο ενώ Loop

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

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

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

Ο βρόχος while θα τρέχει επ 'αόριστον. Μπορείτε να τερματίσετε τον βρόχο πιέζοντας CTRL+C

Ακολουθεί ένα ισοδύναμο μιας γραμμής:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

Διαβάστε μια γραμμή αρχείων ανά γραμμή

Μία από τις συνηθέστερες χρήσεις του loop while είναι η ανάγνωση ενός αρχείου, μιας ροής δεδομένων ή μιας μεταβλητής γραμμής ανά γραμμή.

Στο παρακάτω παράδειγμα, ο βρόχος while θα διαβάσει τη γραμμή αρχείου /etc/passwd ανά γραμμή και θα εκτυπώσει κάθε γραμμή.

file=/etc/passwd while read -r line; do echo $line done < "$file"

Αντί να ελέγξουμε τον βρόχο while με μια συνθήκη, χρησιμοποιούμε την ανακατεύθυνση εισόδου ( < "$file" ) για να περάσουμε ένα αρχείο στην read που είναι η εντολή που ελέγχει τον βρόχο. Ο βρόχος while θα τρέξει μέχρι να διαβάσει η τελευταία γραμμή.

Κατά την ανάγνωση της γραμμής αρχείου με τη γραμμή πάντα χρησιμοποιείτε την read με την επιλογή -r για να αποτρέψετε την αντίστροφη κάθεσμη δύναμη να λειτουργήσει ως χαρακτήρας διαφυγής.

Από προεπιλογή, η εντολή read επεξεργάζεται τους χαρακτήρες κενών / τελικών λευκών χώρων (διαστήματα και καρτέλες). Χρησιμοποιήστε την επιλογή IFS= πριν από την εντολή read για να αποτρέψετε αυτήν τη συμπεριφορά

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

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

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

Δήλωση Break

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

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

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

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

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

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

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

συμπέρασμα

Μέχρι τώρα θα πρέπει να έχετε μια καλή αντίληψη για το πώς να χρησιμοποιήσετε το bash ενώ loop.

bash βρόχου