[KURS] Programowanie w powłoce #6 – obliczanie wyrażeń

W szóstej części kursu Programowanie w powłoce przedstawię operatory arytmetyczne.

Operatory arytmetyczne
Operator Działanie
+, – dodawanie i odejmowanie
!, ~ logiczna i bitowa negacja
** potęga
*, /, % mnożenie, dzielenie, reszta z dzielenia
<<, >> przesunięcie bitowe
<=, >=, <, >, ==, != porównania
&, ^, | bitowe AND, XOR oraz OR
&&, || logiczne AND oraz OR
wyrażenie1?wyrażenie2:wyrażenie3 wyrażenie warunkowe
=, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= przypisania

Przykłady

Poniższy trywialny skrypt pokazuje zastosowanie operatorów:

#!/bin/bash

x=1

echo "Wartość zmiennej x=$x"
echo -n "Dodajemy 2"
x=$[x+2] # operator +
echo ", x=$x"
echo -n "Dodajemy 2, ale innym sposobem"
x=$[x+=2] # operator +=
echo ", x=$x"
echo -n "Podnosimy do potęgi trzeciej"
x=$[x**3] # operator **
echo ", x=$x"
echo -n "I dzielimy przez 25"
x=$[x/=25] # operator /=
echo ", x=$x"
echo -n "I na koniec wypiszemy resztę z dzielenia przez 3"
x=$[x%3] # operator %
echo ", x=$x"

exit 0

Rezultat:

Wartość zmiennej x=1
Dodajemy 2, x=3
Dodajemy 2, ale innym sposobem, x=5
Podnosimy do potęgi trzeciej, x=125
I dzielimy przez 25, x=5
I na koniec wypiszemy resztę z dzielenia przez 3, x=2
Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • Enlik

    $[…] jest przestarzałe (czy coś takiego), zaleca się używanie $((…)); używa się tak samo
    np.

    a=4
    echo $(( a + 5 ))

    spowoduje wypisanie liczby 9.

    • clfapujc

      Nie znam się na programowaniu, ale „na chłopski rozum” łatwiej wpisać pojedynczy „[” niż „((” z dodatkowym przytrzymaniem klawisza shift.