Bash Programlama (Bash Programing) - 2

Bash'de Aritmetik İşlemler
Bash'de aritmetik işlemler için kullanılabilecek bir kaç komut vardır. Farklı kullanım şekilleriyle ve yetenekleri vardır. Basitçe kullanımları aşağıda belirtilmiş olup daha ayrıntılı incelemer için man sayfaları incelenebilir.

  • let
    Bash'in kendi iç komutudur.
    Kullanım şekli
    let <aritmetik_ifade>
    $((<aritmetik_ifade>))

    Aritmatik İfade
    İfadelerin işlevleri C'nin aynısıdır.

    foo++ foo--
    Değişkenin değerini sonra artırır/azaltır.
    ++foo --foo
    Değişkenin değerini önce artırır/azaltır.
    ! ~
    Mantıksal ve bit düzeyi tersinirleri
    **
    Kuvvet
    * / %
    Çarpma, bölme ve kalan (mod)
    + -
    Toplama, çıkarma
    << >>
    Sola ve sağa bit kaydırma operatörü
    <= >= < >
    Karşılaştırma operatörü
    == !=
    Eşittir ve eşit değildir
    &
    Bit düzeyi VE (AND) operatörü
    ^
    Bit düzeti XOR operatörü
    |
    Bit düzeyi VEYA (OR) operatörü
    && ||
    Mantıksal VE ve VEYA
    expr?expr:expr
    Koşul operatörü
    = *= /= %= += -= <<= >>= &= ^= |=
    Soldaki değişkenin değeri ile sağdaki sayı arasında belitrilen işlemi yapar, değişkene atar.

    Örnek;

    1. let x++
    2. let "x = y + 8"

  • expr
    Kullanım şekli
    expr <ifade>

    İfadeler

    ARG1 | ARG2
    ARG1 0 (sıfır) veya null ise ARG2, değil ise ARG1 döndürür
    ARG1 & ARG2
    Argümanlar null veya 0 (sıfır) ise 0, değil ise ARG1
    ARG1 < ARG2
    ARG1, ARG2'den küçük ise 1, değil ise 0 döndürür
    ARG1 > ARG2
    ARG1, ARG2'den büyük ise 1, değil ise 0 döndürür
    ARG1 = ARG2
    ARG1 ile ARG2 eşit ise
    ARG1 != ARG2
    ARG1, ARG2'ye eşit değil ise
    ARG1 <= ARG2
    ARG1, ARG2'den küçük veya eşit ise
    ARG1 >= ARG2
    ARG1, ARG2'den büyük veya eşit ise
    ARG1 + ARG2
    ARG1 ile ARG2'yi toplar
    ARG1 - ARG2
    ARG1'den ARG2'yi çıkartır
    ARG1 * ARG2
    ARG1 ile ARG2'yi çarpar
    ARG1 / ARG2
    ARG1'i ARG2'ye böler
    ARG1 % ARG2
    ARG1'in ARG2'ye bölümünden kalan
    STRING : REGEX
    String içerisinde belirtilen REGEX ile eşleşmeyi sorgular
    match STRING REGEX
    STRING : REGEX ile aynıdır
    substr STRING POS LENGTH
    Stringi belirtilen pozisyondan itibaren belirtilen uzunlukta parçalar, POS 1'den başlar.
    index STRING CHARS
    Belirtilen karakterlerin string içerisineki indeksini verir
    length STRING
    String uzunluğunu verir
  • bc
    Bash Calculor üzerinden buraya sığdıramayacağım kadar çok işlem yapma şansına sahipsiniz. Temel olarak yukarıda anlatılan işlemlerin tamamını bc ile de yapmanız mümkün. İşlemlerinizi bc'nin terminalinden yapabileceğiniz gibi echo vb. ile de işlem gönderebilir ve çıktı alabilirsiniz.
    Örnek
    1. echo "5+8"|bc
    2. SONUC=$(echo "655/21"|bc)