Πώς να γράψετε ένα ΒΑΣΗ "για" Βρόχο

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

Το BASH (το οποίο σημαίνει Bourne Again Shell) είναι μια γλώσσα scripting που χρησιμοποιείται από τα περισσότερα λειτουργικά συστήματα που βασίζονται στο Linux και UNIX.

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

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

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

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

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

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

Σε αυτόν τον οδηγό, θα εμφανιστούν πέντε τρόποι για να χρησιμοποιήσετε τον βρόχο for για ένα σενάριο BASH.

Πριν ξεκινήσετε

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

  1. Εισαγάγετε σενάρια mkdir ( μάθετε περισσότερα για το mkdir εδώ )
  2. Εισάγετε σενάρια cd (αυτό αλλάζει τον κατάλογο σε σενάρια )
  3. Πληκτρολογήστε nano examplen.sh (όπου n είναι το παράδειγμα στο οποίο εργάζεστε)
  4. Εισαγάγετε το σενάριο
  5. Πατήστε CTRL + O για αποθήκευση και CTRL + X για έξοδο
  6. Εκτέλεση bash examplen.sh (και πάλι, με το n να είναι το παράδειγμα με το οποίο εργάζεστε)

Πώς να κάνετε βρόχο μέσω μιας λίστας

#! / bin / bash
για τον αριθμό στο 1 2 3 4 5
κάνω
echo $ number
Έγινε
έξοδος 0

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

Σε ένα βρόχο BASH "for" όλα, οι δηλώσεις μεταξύ των πράξεων και των πράξεων εκτελούνται μία φορά για κάθε στοιχείο της λίστας.

Στο παραπάνω παράδειγμα, ο κατάλογος είναι ό, τι έρχεται μετά τη λέξη στο (δηλ. 1 2 3 4 5).

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

Η αναφορά ηχούς χρησιμοποιείται για την εμφάνιση πληροφοριών στην οθόνη.

Επομένως, αυτό το παράδειγμα παίρνει τους αριθμούς 1 έως 5 και τα εξάγει ένα προς ένα στην οθόνη:

Πώς να βρόχο μεταξύ ενός σημείου έναρξης και ενός τελικού σημείου

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

Αυτό μας οδηγεί στο δεύτερο παράδειγμα που δείχνει πώς να καθορίσουμε ένα σημείο έναρξης και ένα τέλος:

#! / bin / bash
για αριθμό στο {1..10}
κάνω
echo "αριθμός $"
Έγινε
έξοδος 0

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

Η κύρια διαφορά είναι ο τρόπος με τον οποίο διαμορφώνεται ο κατάλογος. Τα σγουρά αγκύλια {} ουσιαστικά υποδηλώνουν ένα εύρος και η περιοχή, στην περίπτωση αυτή, είναι 1 έως 10 (οι δύο κουκίδες διαχωρίζουν την αρχή και το τέλος μιας περιοχής).

Αυτό το παράδειγμα, επομένως, διατρέχει κάθε αριθμό μεταξύ 1 και 10 και εξάγει τον αριθμό στην οθόνη ως εξής:

Ο ίδιος βρόχος θα μπορούσε να έχει γραφτεί έτσι, με σύνταξη ίδια με το πρώτο παράδειγμα:

για τον αριθμό σε 1 2 3 4 5 6 7 8 9 10

Πώς να παραλείψετε αριθμούς σε μια περιοχή

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

Φανταστείτε ότι θέλετε να βρόχο μεταξύ 0 και 100, αλλά να δείχνουν μόνο κάθε δέκατο αριθμό. Το παρακάτω σενάριο δείχνει πώς να το κάνετε ακριβώς αυτό:

#! / bin / bash
για αριθμό στο {0..100..10}
κάνω
echo "αριθμός $"
Έγινε
έξοδος 0

Οι κανόνες είναι βασικά οι ίδιοι. Υπάρχει ένας κατάλογος, μια μεταβλητή και ένα σύνολο δηλώσεων που πρέπει να εκτελεστούν μεταξύ πράξεων και πράξεων . Ο κατάλογος αυτή τη φορά μοιάζει με αυτό: {0..100..10}.

Ο πρώτος αριθμός είναι 0 και ο τελικός αριθμός είναι 100. Ο τρίτος αριθμός (10) είναι ο αριθμός των στοιχείων στη λίστα που θα παραλείψει.

Το παραπάνω παράδειγμα, επομένως, εμφανίζει την ακόλουθη έξοδο:

Μια πιο παραδοσιακή αναζήτηση βρόχου

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

Μπορείτε, ωστόσο, να γράψετε ένα for loop σε παρόμοιο στυλ με τη γλώσσα προγραμματισμού C, όπως παρακάτω:

#! / bin / bash
για ((αριθμός = 1, αριθμός <100, αριθμός ++))
{
αν (($ αριθμός% 5 == 0))
έπειτα
echo "ο αριθμός $ διαιρείται με 5"
fi
}}
έξοδος 0

Ο βρόχος αρχίζει ρυθμίζοντας τον μεταβλητό αριθμό σε 1 (αριθμός = 1 ). Ο βρόχος θα παραμείνει αναλλοίωτος ενώ η τιμή ενός αριθμού είναι μικρότερη από 100 ( αριθμός <100 ). Η τιμή των αριθμών αλλάζει με την προσθήκη 1 σε αυτό μετά από κάθε επανάληψη ( αριθμός ++ ).

Τα πάντα μεταξύ των σγουράκια πραγματοποιούνται μέσω κάθε επανάληψης του βρόχου.

Το κομμάτι μεταξύ των τιράντες ελέγχει την τιμή ενός αριθμού , το διαιρεί με 5 και συγκρίνει το υπόλοιπο με το 0. Εάν το υπόλοιπο είναι 0 τότε ο αριθμός διαιρείται με 5 και στη συνέχεια εμφανίζεται στην οθόνη.

Για παράδειγμα:

Αν θέλετε να αλλάξετε το μέγεθος του βήματος της επανάληψης, μπορείτε να τροποποιήσετε το τμήμα ++ για να είναι αριθμός = αριθμός + 2 , αριθμός = αριθμός + 5 , αριθμός = αριθμός + 10 κ.λπ.

Αυτό μπορεί να μειωθεί περαιτέρω στον αριθμό + = 2 ή τον αριθμό + = 5 .

Ένα πρακτικό παράδειγμα

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

Το παρακάτω παράδειγμα δείχνει πώς μπορείτε να μετατρέψετε αρχεία ήχου από MP3 σε WAV :

#! / bin / bash

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

Η εντολή mpg μετατρέπει το αρχείο MP3 σε WAV. Ωστόσο, ίσως χρειαστεί να το εγκαταστήσετε πρώτα με το διαχειριστή πακέτων.