Deklarowanie zmiennych i podstawowe operacje na nich w BASH-u

Stronę tą wyświetlono już: 183 razy

Deklarowanie zmiennych i ich wyświetlanie

Zmienne w BASH-u są deklarowane w sposób niejawny. Nie ma tutaj również (jak to bywa w językach skryptowych) jawnej kontroli typów, które zasadniczo mogą być albo tekstowe albo liczbowe. Przypisanie zmiennej w BASH-u wartości jest równoznaczne z jej utworzeniem:

Listing 1
  1. STR_VARIABLE="zmienna tekstowa";
  2. INT_VARIABLE=10;
  3. echo "$STR_VARIABLE $INT_VARIABLE";
  4. echo '$STR_VARIABLE $INT_VARIABLE';

Wykonanie powyższego skryptu spowoduje wyświetlenie:

zmianna tekstowa 10
$str_variable $int_variable

Jak widać pierwszym poleceniem echo wyświetlone zostały wartości zapisane w zmiennych ponieważ użyte zostały znaki cudzysłowia, natomiast w drugim przypadku wyświetlone zostały nazwy, ponieważ użyto apostrofów. Odwołując się do zmiennej jej nazwę trzeba poprzedzić znakiem $.

Uwaga! Przy deklarowaniu zmiennych nie można używać znaku spacji przed i po operatorze podstawienia =, czyli coś takiego:

Listing 2
  1. STR_VARIABLE = "zmianna tekstowa";

spowoduje błąd.

Wprowadzanie do zmiennej wartości wpisanej z klawiatury

Poleceniem read można wprowadzić dane z klawiatury do zmiennej:

Listing 3
  1. read VARIABLE;
  2. echo $VARIABLE;

Wczytanie do zmiennej wyniku działania polecenia systemowego

Wartość zwracana przez każde polecenie systemowe może zostać przypisana zmiennej w następujący sposób:

Listing 4
  1. FILES=$(ls -Q);
  2. echo $FILES;

Powyższy kod wczyta do zmiennej $FILES listę plików i folderów otrzymaną poleceniem ls -Q, gdzie opcja -Q powoduje ujęcie nazw folderów i plików w cudzysłowia.

Operacje arytmetyczne na zmiennych liczbowych

W BASH-u można operować jedynie na zmiennych całkowitych wykorzystując przy tym następujące podstawowe operatory:

OperatorOpis
+dodawania
-odejmowania
*mnożenia
/dzielenia
**potęgowanie
%reszta z dzielenia
  • Wykonanie działania matematycznego można przeprowadzić z użyciem podwójnych nawiasów okrągłych:

    Listing 5
    1. $VAR1=10;
    2. $VAR2=20;
    3. $VAR3=$(($VAR1 * $VAR2));
    4. echo $VAR3;

    Wynik działania:

    200

    Można również użyć nawiasów kwadratowych:

    Listing 6
    1. $VAR1=10;
    2. $VAR2=20;
    3. $VAR3=$[$VAR1 * $VAR2];
    4. echo $VAR3;
  • Komentarze