Introducere în Bash Scripting
Alex Scriven
Data Scientist
Python:
for x in range(3):
print(x)
0
1
2
R:
for (x in seq(3)){
print(x)
}
[1] 1
[1] 2
[1] 3
Structura de bază în Bash este similară:
for x in 1 2 3do echo $x done
1
2
3
Bash oferă o modalitate simplă de a crea intervale numerice numită „expansiune cu acolade":
{START..STOP..INCREMENT}for x in {1..5..2}do echo $x done
1
3
5
O altă modalitate frecventă de a scrie bucle FOR este sintaxa „trei expresii".
x=2)x<=4)x+=2)
for ((x=2;x<=4;x+=2))
do
echo $x
done
2
4
Bash permite și expansiuni cu potrivire de șabloane într-un bucle for, folosind simbolul *, de exemplu pentru fișierele dintr-un director.
De exemplu, presupunem că există două documente text în folderul /books:
for book in books/*
do
echo $book
done
books/book1.txt
books/book2.txt
Îți amintești de subshell folosind notația $()?
Poți utiliza aceasta direct într-un bucle for!
Presupunem o structură de foldere astfel:

Putem itera prin rezultatul unui apel subshell:
for book in $(ls books/ | grep -i 'air')do echo $book done
AirportBook.txt
FairMarketBook.txt
Similar cu un bucle FOR, dar se definește o condiție verificată la fiecare iterație.
Iterațiile continuă până când condiția nu mai este îndeplinită!
while în loc de for-le)&& (ȘI) sau || (SAU)Iată un exemplu simplu:
x=1while [ $x -le 3 ];do echo $x ((x+=1)) done
1
2
3
Atenție la bucla WHILE infinită, dacă condiția de oprire nu este niciodată îndeplinită.
x=1
while [ $x -le 3 ];
do
echo $x
# don't increment x. It never reaches 3!
# ((x+=1))
done
Aceasta va afișa 1 la infinit!
Introducere în Bash Scripting