Linux – skrypty powłoki Bash cz. II

Poprzedni artykuł wprowadzał w podstawy powłoki Bash w linuxie. Pora kontynuować i poszerzyć wiedzę o kwestie bardzo istotne w programowaniu, czyli warunki. W tej części zarysuje ogólny schematy w jaki sposób możesz utworzyć warunek w bash. W następnych częściach posłużę się paroma przykładami.

Zachęcam do korzystania i testowania naszych serwerów VPS.

Zaczynamy

Podstawową instrukcją warunkową jest „if”, która przyjmuje następującą ogólną postać:

if [ warunek ]; then
  wykonaj-te-polecenia
fi

Jeśli warunek jest prawdziwy, to wykonują się polecenia po słowie kluczowym „then„. Jeśli warunek jest fałszywy, to polecenia są pomijane. Instrukcja „if” jest zakończona słowem kluczowym „fi” (odwrócenie „if„).

Możesz również dodać opcjonalne „else„, które zawiera polecenia mające się wykonać, gdy warunek jest fałszywy:

if [ warunek ]; then
  wykonaj-te-polecenia
else
  wykonaj-te-inne-polecenia
fi

Jeśli chcesz wprowadzić więcej niż jeden warunek powinieneś dodatkowo użyć polecenia „elif” (skrót od „else if”):

if [ warunek1 ]; then
  wykonaj-te-polecenia
elif [ warunek2 ]; then
  wykonaj-te-inne-polecenia
else
  wykonaj-te-jeszcze-inne-polecenia
fi

W warunkach możesz używać różnych operatorów porównania, parę możliwości poniżej:

  • -eq – równy
  • -ne – nierówny
  • -lt – mniejszy
  • -gt – większy
  • -le – mniejszy lub równy
  • -ge – większy lub równy
  • = – identyczny (dla łańcuchów znaków)

Przykład

Jak powinien wyglądać cały skrypt wyszukujący plik o nazwie test.txt w katalogu domowym użytkownika?

#!/bin/bash
# Skrypt sprawdzający czy w katalogu domowym użytkownika znajduje się plik o nazwie test.txt
if [ -f ~/test.txt ]; then
  echo "Plik o podanej nazwie już istnieje"
else
  echo "Plik o takiej nazwie nie istnieje"
fi

W dzisiejszej części to wszystko. Zachęcam do śledzenia naszego bloga.