Prezentare generală pentru Loop în Shell Scripting

Pentru bucla în Shell Scripting în acest lucru, să spunem că dacă dorim să executăm o sarcină sau o operație în mod repetat, putem scrie același cod acele numeroase numere de timp, care este o sarcină care consumă timp și nu este eficientă de asemenea. Pentru a evita aceste tipuri de scenarii, putem folosi bucle precum bucla într-un limbaj de programare. Deci, for loop este utilizat pentru a efectua o anumită sarcină, cum ar fi adăugarea / înmulțirea sau orice altă operațiune pentru un anumit număr de ori până când condiția de încheiere a fost îndeplinită în orice sistem de operare. Nu trebuie să scriem același cod din nou și din nou folosind bucla.

Sintaxă pentru buclă

Sintaxa de pentru buclă în scriptul shell poate fi reprezentată în diferite moduri, după cum urmează:

1. Prima metodă de sintaxă

for var in list
do
command1
command2
done

Din exemplul de mai sus, avem cuvinte cheie predefinite sau cuvinte cheie încorporate, cum ar fi, face, face și etc. În timp ce lista este o listă de variabile sau o listă de cuvinte sau o listă de numere și var este un nume variabil în timpul acelei iterații. Dacă o listă nu este furnizată, bash va lua un parametru pozițional pe care l-am trecut în coajă. În bucla de mai sus, va executa toate comenzile care există între do și făcut de n de mai multe ori unde n este dimensiunea listei. De exemplu, dacă dimensiunea listei este de 5 având numere de la 1 la 5, atunci în timpul primei iterații 1 va fi memorat în var și operațiunile pe var vor fi efectuate de corpul buclei pentru unde sunt comenzile.

2. A doua metodă de sintaxă

for ( ( expr1; expr2; expr3 ))
do
command1
command2
….
done

În sintaxa de mai sus, dacă observăm această sintaxă este similară cu sintaxa de pentru buclă în limbajul de programare c. În buclă, există trei expresii în care prima expresie este pentru inițializare, a doua este pentru verificare condiționată și a treia este pentru actualizarea iteratorului. Execuția de mai sus pentru buclă va începe astfel, înainte de a începe prima iterație expr1 este executată, ceea ce înseamnă că inițializarea se va face după ce operațiunile / comenzile dintre do și done se vor executa iterativ până când expr2 va evalua la true și după fiecare iterație expr3 actualizează valoarea iteratorului (contorul), astfel încât operațiunile vor fi efectuate pe următorul element sau valoare din listă sau tablou sau șir.

Diagrama de flux - Pentru bucla în Shell Scripting

Să luăm în considerare un exemplu de pentru buclă și să discutăm fluxul acesteia folosind diagrama de flux.

for filename in *.dat
do
echo cp $fname orig_$fname
done

În diagrama de flux de mai sus, explicăm fluxul de buclă care se iterează pe o listă de nume de fișiere și există patru pași în flux, cum ar fi fluxul procesului, valoarea variabilă, procesul și stdout. În fluxul de proces, se explică când începe bucla for, valoarea de iterator, verificând condiția dacă satisface, atunci rulează procesul, altfel încheie procesul. În valoare variabilă, iterație prin iterație vom obține un nume de fișier în el, cum ar fi textfile.dat, iar în timpul procesului, acesta execută o declarație ecou unde afișează instrucțiunea de copiere cu un nume de fișier vechi și nume de fișier nou pe stdout. Așadar, acesta este fluxul de buclă care se iterează pe lista numelor de fișiere de intrare.

ieşire:

Cum funcționează Loop în Shell Scripting?

Pentru că script-ul buclă în shell funcționează în felul următor, de fiecare dată când shell-ul vede cuvântul cheie pentru că știe că trebuie să repete o serie de comenzi o dată pentru fiecare element dintr-o listă. De fiecare dată când iterația rulează un element din listă este atribuit variabilei var și este procesată prin lista de comenzi prezente în bucla dintre a face și a face sunt executate înainte de a trece la următorul articol din listă sau iterația următoare. Vom accesa valoarea în var folosind $ înainte de variabilă, astfel încât atunci când script-ul shell îl procesează, valoarea în var substituie în locul acesteia.

Exemplu:

for filename in *.txt
do
ls filename
done

În programul de mai sus, trecem o listă de fișiere .txt ca intrare în bucla pentru și numele variabilei este un nume de fișier în care fișierul .txt va stoca și apoi procesează numele fișierului listând fișierul .txt din numele fișierului și apoi același proces se va repeta până când toate procesările de fișiere .txt s-au făcut.

ieşire:

Exemple de pentru buclă

Până acum, am discutat despre modul în care funcționează bucla în scriptul shell și sintaxele diferite. Acum, haideți să vedem câteva exemple și să le parcurgem și să explicăm fiecare exemplu despre ceea ce face

Exemplul # 1

Să ne prezentăm o listă de valori statice ca intrare pentru buclă și modul în care se va executa se va vedea ca mai jos:

for a day in Fri Thu Wed Tue Mon
do
echo “Todays day is $day”
done

În exemplul de mai sus, nu ar trebui să trecem valorile de intrare cu, întrucât delimiter dacă îl trecem, considerăm că delimiterul este de asemenea o valoare precum „Ven” și nu ar trebui să enumerăm valorile folosind ghilimele duble „dacă le trecem cu ghilimele duble, scriptul shell va trata toate valorile ca o singură valoare.

Un exemplu o / p: Astăzi ziua este: vineri, miercuri, joi luni (dacă folosim ghilimele duble)

ieşire:

Exemplul # 2

Acum să vedem un alt exemplu în care ne folosim înainte cu lista de intrare, ca mai jos:

Month = “Jan Feb Mar Apr May Jun”
for mon in $Month
do
echo “Month is $mon”
done

În exemplul de mai sus, facem aceeași execuție a buclei ca în exemplul de mai sus, dar în loc de lista de intrare, lectura se va face folosind cuvântul cheie „în”. În scripturile shell, fiecare variabilă trebuie să fie reprezentată în ghilimele duble, dar există câteva excepții, cum ar fi dacă folosim ghilimele duble în luna lună de mai sus pentru linia de buclă, atunci acesta va trata cuvintele întregi ca o singură linie. Deci trebuie să avem grijă de ea.

ieşire:

Exemplul # 3

Acum, vom scrie pentru buclă fără lista de intrare în instrucțiunea pentru buclă, în schimb va lua intrare de la argumente poziționale la script și exemplu ca mai jos:

Haideți să scoatem numele scriptului ca sample.sh și conținutul său, ca mai jos:

for num
do
echo “Number is $num”
done
./sample.sh 1 2 3 4 5

În exemplul de mai sus, intrarea către buclă este trecută din lista de argumente furnizate scriptului, astfel încât pentru fiecare argument va procesa toate comenzile și va afișa ieșirea până la toate argumentele iteratate.

ieşire:

Concluzie - Pentru bucla în Shell Scripting

În cele din urmă, totul se referă la bucle în scripturile shell. Am discutat ce este pentru buclă în scripturi de coajă, pentru sintaxa buclă, diagrama sa de flux care explică fluxul de pentru buclă, modul de lucru pentru buclă în shell și exemple de pentru buclă în scripturi shell. Sper că veți înțelege bine bucla, cum să o utilizați în scripturile shell și să o executați după citirea acestui articol.

Articole recomandate

Acesta este un ghid pentru For loop în Shell Scripting. Aici vom discuta introducerea, Cum funcționează bucla în scripturi de shell, diagrama de flux și Exemplu de pentru buclă. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Bucle în R
  2. Spark SQL Dataframe
  3. Baza de date multidimensională
  4. Beneficiile vizualizării datelor

Categorie: