Skrypty w BASH doskonale sprawdzają się w przypadku, gdy działanie zależy od wartości określonych danych.

Aby wykonać – lub nie – część instrukcji stosujemy tzw. instrukcje warunkowe, np. IF. W przypadku BASH instrukcja IF również została zaimplementowana i możemy jej używać w naszych skryptach.

JEŻELI jeżyk TO

Instrukcja IF w skryptach BASH różni się zdecydowanie od tej w „dorosłych” językach programowania. Warunek IF w BASH opisujemy w następujący sposób:

if [[ zmienna == wynik ]];
do
     # jakas funkcjonalnosc gdy PRAWDA
else
     # jakas funkcjonalnosc gdy FAŁSZ
fi

Prosta forma

Często zdarza się, że nie musimy wywoływać żadnej dodatkowej funkcjonalności w przypadku, gdy warunek nie zachodzi. Wówczas możemy zastosować prostszą formę warunku IF:

if [[ zmienna == wynik ]];
do
     # jakas funkcjonalnosc gdy PRAWDA
fi

Przykład 1: Dzień czy noc?

Jak widać, instrukcja warunkowa IF posiada dość prostą składnię. Jednak jak ona spisuje się w praktyce? Wykorzystajmy do tego polecenie systemowe DATE.

#!/bin/bash

godzina=$(date +%H)

echo $godzina

if [[ (12 > $godzina) ]];
then
     echo „Jest godzina $godzina, a zatem jest przed poludniem!”
else
     if [[ (17 > $godzina) ]];
     then
          echo „Jest godzina $godzina, a zatem jest popoludnie!”
     else
          if [[ ($godzina > 21) ]];
          then
               echo „Jest $godzina, a zatem jest noc!”
          else
               echo „Jest $godzina, a zatem jest wieczor!”
          fi
     fi
fi

kurs bash skrypt linux skryptowanie sh programowanie

Instrukcja warunkowa IF w wybranym przypadku porównuje wartość zmiennej $godzina, uzyskanej z polecenia DATE z określonymi stałymi. Jak widzimy jest to zagnieżdżenie głębokie, rzadko spotykane.

Przykład 2: Czy jestem super użytkownikiem?

W wielu sytuacjach zdarza się, że musimy wykonywać część lub cały skrypt z uprawnieniami super użytkownika (ROOT). Warto jest, aby nasze skrypty wiedziały, z jakiego użytkownika obecnie korzystamy.

Do pobierania danych aktualnego użytkownika służy nam polecenie id z odpowiednim parametrem.

kurs bash skrypt linux skryptowanie sh programowanie

#!/bin/bash

if [[ $(id -u) == „0” ]];
then

     echo „Jestem ROOT-em”

else

     echo „Ten skrypt powinien być uruchomiony jako ROOT!”

fi

Jak widać, tworzenie skryptu, który wie, czy uruchomiony jest z uprawnieniami ROOT-a jest bardzo proste.

Gdy aplikacja to trochę za dużo, BASH jest idealny!

Tak naprawdę tworzenie skryptów może być bardzo dużym ułatwieniem, gdy patrzymy na całość dostępnych poleceń systemowych a tworzenie osobnego programu do określonych operacji w środowisku systemowym jest trochę „na wyrost” problemowi, z którym się borykamy.

BASH oraz środowisko narzędzi GNU to doskonały toolkit do pełnej automatyzacji systemu. Staraj się więc wykorzystać te dobrodziejstwa niwelując powtarzalne czynności, które zajmują Ci czas a sam komputer może je wykonać bez Twojego udziału.

M.M.