Instrukcje warunkowe i pętle¶
Komendy omawiane w tej części zajęć: basename, dirname, sed oraz pętla for i instrukcja warunkowa if.
W bashu możemy korzystać z pętli for oraz instrukcji warunkowych if. Instrukcje te umożliwiają pisanie skryptów - prostych programów interpretowanych przez powłokę Unixa, służących do automatcznego przetwarzania plików. Zanim jednak zaczniemy przetwarzać pliki w pętli, warto zapoznać się z komendą find.
Program find¶
Polecenie find umożliwia znajdowanie wszystkich plików, które spełniają zadane kryteria. Ogólnie składnia polecenia jest następująca: find ścieżka -kryterium1 wartość -kryterium2 wartość .... Kryteria mogą być na prawdę różne:
find ../PDB -name *.pdbwyszukuje wszystkie pliki*.pdbw podanym katalogu``find ./ -cmin -60 `` wyszukuje w bierzącym katalogu wszystkie pliki i katalogi zmodyfikowane w ciągu ostatnich 60 minut
find ./ -cmin -60 -type fjak wyżej, ale tym razem tylko pliki, dzięki kryterium-type f
find . -name '*.txt' -size 0wyszukuje puste pliki (tzn o rozmiarze 0)
find path -type f ! -size 0tym razem pliki niepuste (znak!neguje wartość logiczną następującego po nim kryterium)
find . -type f -size +2k -size -8kznajduje pliki mniejsze niż 8KB ale większe niż 2KB
Przetwarzanie w pętli¶
W powłoce bash istnieje pętla for, mająca następującą składnię:
for i in tu lista wielu wyrazow
do
echo $i
done