Linux Shell Script Exemple ale buclei „for” BASH
Ce să știi
- Într-un Bash pentru buclă, toate declarațiile între do și Terminat sunt efectuate o dată pentru fiecare articol dintr-o listă sau un interval de numere.
- Cu o listă mare, folosește în {list} pentru a bucla între un punct de început și un punct de sfârșit. Utilizați punctele de suspensie pentru a repeta un interval de numere complet, de exemplu, pentru numărul din {1..10}.
- Pentru a omite anumite numere, adăugați un al treilea număr la interval. De exemplu, folosiți {0..100..10} pentru a enumera numai fiecare al 10-lea număr.
Într-un limbaj de programare sau scripting, Bash oferă mai multe modalități de a repeta codul - un proces numit buclă - în care un pentru bucla repetă o anumită secțiune a codului. Acest lucru permite rularea unei serii de comenzi până când este îndeplinită o anumită condiție. În acest ghid, vă arătăm cum să scrieți un Bash pentru Buclă.
Cum să faci bucla printr-o listă
Limbajele de scripting, cum ar fi Bash, prezintă constructe de programare similare celorlalte limbaje. De exemplu, importați parametri
Luați în considerare un exemplu simplu de script intitulat buclă.sh:
#!/bin/bash
pentru numărul din 1 2 3 4 5
do
ecou $numar
Terminat
iesirea 0
Modul de utilizare Bash pentru bucle este oarecum diferită de modul în care se ocupă alte limbaje de programare și scripting pentru bucle. Să descompunem scenariul.
Într-un BASH pentru buclă, toate declarațiile dintre do și Terminat sunt efectuate o dată pentru fiecare element din listă. În acest exemplu, lista este tot ceea ce urmează după cuvânt în-numerele 1 2 3 4 5.
De fiecare dată când bucla repetă, următoarea valoare din listă este inserată în variabila specificată după cuvânt pentru. În bucla de mai sus, variabila este apelată număr.
The ecou declarația afișează informații pe ecran. Prin urmare, acest exemplu ia numerele de la 1 la 5 și trimite fiecare număr unul câte unul pe ecran:

Cum să faci bucla între un punct de început și un punct de sfârșit
Problema cu acest script loop.sh este că, dacă doriți să procesați o listă mai mare (de exemplu, de la 1 la 500), ar trebui să tastați toate numerele. În schimb, specificați un punct de început și un punct final:
#!/bin/bash
pentru numărul din {1..10}
do
ecou „$număr”
Terminat
iesirea 0
Regulile sunt aceleași. Valorile de după cuvânt în alcătuiți lista prin care să iterați și fiecare valoare din listă este plasată în variabilă (adică, număr) și de fiecare dată când bucla repetă, instrucțiunile dintre do și Terminat Sunt facute.
Principala diferență este modul în care este formată lista. Parantezele indică un interval, iar intervalul, în acest caz, este de la 1 la 10 (cele două puncte separă începutul și sfârșitul unui interval).
Prin urmare, acest exemplu trece prin fiecare număr între 1 și 10 și trimite numărul pe ecran.
Aceeași buclă ar fi putut fi scrisă așa, cu sintaxă identic cu primul exemplu:
pentru numărul în 1 2 3 4 5 6 7 8 9 10
Cum să omiteți numerele dintr-un interval
Exemplul anterior a arătat cum să faci bucla între un punct de început și un punct final. Iată cum să omiteți numerele din interval.
De exemplu, pentru a bucla între 0 și 100, dar pentru a afișa numai fiecare al zecelea număr, utilizați următorul script pentru a obține această ieșire:
#!/bin/bash
pentru numărul din {0..100..10}
do
ecou „$număr”
Terminat
iesirea 0
Regulile sunt aceleași. Există o listă, o variabilă și un set de instrucțiuni care trebuie efectuate între do și Terminat. Lista de data aceasta arată astfel: {0..100..10}.
Primul număr este 0 și numărul final este 100. Al treilea număr (10) este numărul de articole din listă pe care le va omite.
Prin urmare, exemplul de mai sus afișează următoarea ieșire:

Un exemplu practic
Buclele For faceți mai mult decât repetarea listelor de numere. De exemplu, utilizați rezultatul altor comenzi ca listă.
Următorul exemplu arată cum să convertiți fișiere audio din MP3 la WAV:
#!/bin/bash
pentru fișierul în ./*.mp3
do
mpg -w ./wavs/"${fișier}".wav "$fișier"
Terminat
Lista din acest exemplu este fiecare fișier cu extensia .MP3 din folderul curent, iar variabila este un fișier.
Comanda mpg convertește fișierul MP3 în WAV. Cu toate acestea, probabil că trebuie să instalați mai întâi acest instrument folosind un manager de pachete.