Wprowadzenie do skryptów Bash
Alex Scriven
Data Scientist
Podstawowa instrukcja IF w Bash ma następującą strukturę:
if [ CONDITION ]; then# SOME CODEelse # SOME OTHER CODEfi
Dwie wskazówki:
];Możemy porównać ciągi znaków w instrukcji IF:
x="Queen"if [ $x == "King" ]; thenecho "$x is a King!"else echo "$x is not a King!" fi
Queen is not a King!
Można też użyć != dla 'nie równa się'
Arytmetyczne instrukcje IF mogą używać struktury z podwójnymi nawiasami:
x=10if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Arytmetyczne instrukcje IF mogą też używać nawiasów kwadratowych i flag arytmetycznych zamiast (>, <, =, != itp.):
-eq dla 'równa się'-ne dla 'nie równa się'-lt dla 'mniejsze niż'-le dla 'mniejsze lub równe'-gt dla 'większe niż'-ge dla 'większe lub równe'Poniżej poprzedni przykład zapisany z użyciem notacji nawiasów kwadratowych:
x=10
if [ $x -gt 5 ]; then
echo "$x is more than 5!"
fi
10 is more than 5!
Bash oferuje również flagi związane z plikami:
-e jeśli plik istnieje-s jeśli plik istnieje i ma rozmiar większy od zera-r jeśli plik istnieje i jest czytelny-w jeśli plik istnieje i jest zapisywalnyOraz wiele innych:
Do łączenia warunków (AND) lub użycia OR w Bash stosuje się następujące symbole:
&& dla AND|| dla ORW Bash można łączyć warunki w następujący sposób:
x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
echo "$x is more than 5 and less than 11!"
fi
Lub użyć notacji z podwójnymi nawiasami kwadratowymi:
x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
echo "$x is more than 5 and less than 11!"
fi
Można też używać programów wiersza poleceń bezpośrednio w warunku, bez nawiasów kwadratowych.
Na przykład, jeśli plik words.txt zawiera 'Hello World!':
if grep -q Hello words.txt; then
echo "Hello is inside!"
fi
Hello is inside!
Można też użyć powłoki w powłoce w warunku.
Przepiszmy poprzedni przykład – wynik będzie taki sam.
if $(grep -q Hello words.txt); then
echo "Hello is inside!"
fi
Hello is inside!
Wprowadzenie do skryptów Bash