Wprowadzenie do skryptów Bash
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
Podstawowa struktura w Bash jest podobna:
for x in 1 2 3do echo $x done
1
2
3
Bash oferuje wygodny sposób tworzenia zakresów liczbowych zwany rozwinięciem nawiasów klamrowych:
{START..STOP..INCREMENT}for x in {1..5..2}do echo $x done
1
3
5
Innym popularnym sposobem zapisu pętli FOR jest składnia "trzech wyrażeń".
x=2)x<=4)x+=2)
for ((x=2;x<=4;x+=2))
do
echo $x
done
2
4
Bash umożliwia dopasowywanie wzorców w pętli for za pomocą symbolu *, np. pliki w katalogu.
Przyjmijmy, że w folderze /books znajdują się dwa dokumenty tekstowe:
for book in books/*
do
echo $book
done
books/book1.txt
books/book2.txt
Pamiętasz tworzenie powłoki w powłoce za pomocą notacji $()?
Można jej użyć bezpośrednio w pętli for!
Przyjmijmy następującą strukturę folderów:

Możemy iterować po wynikach wywołania powłoki w powłoce:
for book in $(ls books/ | grep -i 'air')do echo $book done
AirportBook.txt
FairMarketBook.txt
Podobna do pętli FOR. Różnica polega na ustawieniu warunku sprawdzanego przy każdej iteracji.
Iteracje trwają, dopóki warunek jest spełniony!
for używa się słowa while-le)&& (AND) lub || (OR)Prosty przykład:
x=1while [ $x -le 3 ];do echo $x ((x+=1)) done
1
2
3
Uwaga na nieskończoną pętlę WHILE, gdy warunek zakończenia nigdy nie jest spełniony.
x=1
while [ $x -le 3 ];
do
echo $x
# don't increment x. It never reaches 3!
# ((x+=1))
done
To będzie drukować 1 w nieskończoność!
Wprowadzenie do skryptów Bash