Úvod do Bash skriptování
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
Základní struktura v Bash je podobná:
for x in 1 2 3do echo $x done
1
2
3
Bash nabízí elegantní způsob vytvoření číselného rozsahu zvaný 'rozvinutí složených závorek':
{START..STOP..INCREMENT}for x in {1..5..2}do echo $x done
1
3
5
Dalším běžným zápisem smyček FOR je syntaxe 'tří výrazů'.
x=2)x<=4)x+=2)
for ((x=2;x<=4;x+=2))
do
echo $x
done
2
4
Bash umožňuje rozvinutí vzorů do smyčky for pomocí symbolu *, například pro soubory v adresáři.
Předpokládejme, že ve složce /books jsou dva textové soubory:
for book in books/*
do
echo $book
done
books/book1.txt
books/book2.txt
Pamatujete si vytváření shellu v shellu pomocí notace $()?
Lze jej použít přímo ve smyčce for!
Předpokládejme následující strukturu složek:

Výsledek volání shellu v shellu lze procházet smyčkou:
for book in $(ls books/ | grep -i 'air')do echo $book done
AirportBook.txt
FairMarketBook.txt
Podobné jako smyčka FOR. Místo výčtu se testuje podmínka při každé iteraci.
Iterace pokračují, dokud je podmínka splněna!
while místo for-le apod.)&& (AND) nebo || (OR)Jednoduchý příklad:
x=1while [ $x -le 3 ];do echo $x ((x+=1)) done
1
2
3
Pozor na nekonečnou smyčku WHILE, pokud není splněna podmínka ukončení.
x=1
while [ $x -le 3 ];
do
echo $x
# don't increment x. It never reaches 3!
# ((x+=1))
done
Toto bude tisknout 1 donekonečna!
Úvod do Bash skriptování