Όπως κάθε άλλη γλώσσα σεναρίου, το Bash έχει επίσης υποστήριξη για βρόχους.
Οι βρόχοι είναι εξαιρετικοί για την εκτέλεση επαναλαμβανόμενων εργασιών. Μπορούμε να χρησιμοποιήσουμε για βρόχους και ενώ βρόχους στα σενάρια Bash.
Η σύνταξη του for for loop είναι:
for VARIABLE in PARAM1 PARAM2 PARAM3 do // scope of for loop done
Το for loop θα εκτελεστεί για κάθε παράμετρο. Οι παράμετροι μπορεί να είναι αριθμοί, εύρος αριθμών ή συμβολοσειρές κ.λπ.
Αυτό το απλό παράδειγμα εκτυπώνει αριθμούς, 1 έως 5 χρησιμοποιώντας το βρόχο για:
#!/bin/bash for i in 1 2 3 4 5 do echo '$i' done
Παραγωγή:
1 2 3 4 5
Μπορούμε επίσης να ορίσουμε ένα εύρος αριθμών για βρόχο:
Για παράδειγμα:
for i in {1..5} do echo '$i' done
Παραγωγή:
1 2 3 4 5
Μπορούμε επίσης να χρησιμοποιήσουμε τις παραμέτρους συμβολοσειράς για βρόχο:
#!/bin/bash for day in MON TUE WED THU FRI SAT SUN do echo '$day' done
Παραγωγή:
MON TUE WED THU FRI SAT SUN
Μπορούμε επίσης να χρησιμοποιήσουμε μια σύνταξη τύπου C για να γράψουμε το for loop. Για παράδειγμα:
#!/bin/bash for ((i=1; i<=5; i++)) do echo '$i' done
Παραγωγή
1 2 3 4 5
Για να απαριθμήσουμε όλα τα αρχεία στον τρέχοντα κατάλογο χρησιμοποιώντας το bash for loop, χρησιμοποιούμε:
#!/bin/bash for fname in ./ do ls -l $fname done
Το Bash υποστηρίζει επίσης ενώ βρόχους. Ενώ οι βρόχοι εκτελούν ένα σύνολο οδηγιών έως ότου μια συνθήκη αξιολογηθεί ως αληθής.
Η σύνταξη για το Bash while loop είναι:
while [condition] do //execute instructions done
Η συνθήκη αξιολογείται πριν από την εκτέλεση οποιωνδήποτε οδηγιών. Επομένως, είναι απαραίτητο να έχουμε ένα μέσο ενημέρωσης της κατάστασης, διαφορετικά ο βρόχος θα εκτελεστεί για πάντα.
Το παρακάτω είναι ένας απλός βρόχος while που εκτυπώνει τους αριθμούς 1 έως 5. Ο βρόχος τερματίζεται όταν ο αριθμός είναι μεγαλύτερος από 5.
#!/bin/bash num=1 while [ $num -le 5 ] do echo '$num' let num++ done
Όπως και για το loop, μπορούμε επίσης να γράψουμε το bash ενώ το loop σε γλώσσα τύπου C.
Για παράδειγμα:
#!/bin/bash num=1 while((num <= 5)) do echo $num let num++ done