12 – Bash Script’te Sayılarla Çalışmak

Bash script yazarken, matematiksel işlemler yapmak sıklıkla karşımıza çıkar. Bash, temel matematiksel işlemler için bazı dahili araçlar ve komutlar sunar. Bu sayede basit hesaplamalar, aritmetik işlemler ve hatta otomasyon için kullanılabilir. Bu makalede, Bash’te matematiksel işlemler nasıl yapılır, hangi komutlar ve teknikler kullanılır, bu konulara değineceğiz.
1. Sayısal Değişkenlerle Çalışma
Bash değişkenleri genellikle metin tabanlıdır, ancak sayısal işlemler için bu değişkenleri aritmetiksel olarak kullanabiliriz. Değişkenlerin sayısal olarak değerlendirilmesi için bazı özel yöntemler kullanılır.
Bir değişkene sayısal bir değer atayabilirsiniz:
number=5
Ancak Bash’te doğrudan matematiksel işlem yapmak biraz daha farklıdır. Bir sonraki bölümde bu işlemler için kullanabileceğimiz yöntemleri inceleyeceğiz.
2. Matematiksel İfadeler
Bash, matematiksel ifadeleri çözmek için birkaç yöntem sunar: expr
, let
, ve $(( ))
. Her biri farklı durumlar için uygun olabilir ve kullanımları oldukça basittir.
2.1. expr
Komutu
expr
, basit aritmetik işlemler yapmak için kullanılan bir komuttur. Matematiksel ifadeleri çözmek için şu şekilde kullanılır:
result=$(expr 5 + 3)
echo $result # Çıktı: 8
Bu komutun önemli bir özelliği, operatörler arasında boşluk kullanılması gerektiğidir. Örneğin, 5+3
yerine 5 + 3
şeklinde yazılmalıdır.
result=$(expr 10 \* 3)
echo $result # Çıktı: 30
Burada çarpma (*
) işlemi \
ile kaçırılmıştır, çünkü *
karakteri Bash tarafından joker karakter olarak değerlendirilir.
2.2. let
Komutu
let
komutu, aritmetik ifadeleri doğrudan değerlendirmenizi sağlar ve değişkenlerin değerlerini güncelleyebilir:
let sum=5+3
echo $sum # Çıktı: 8
let
kullanırken boşluk bırakmak isteğe bağlıdır ve operatörleri normal şekilde kullanabilirsiniz.
Birden fazla işlem yapabilir ve değişkenleri güncelleyebilirsiniz:
let number+=4
echo $number # number 5'ten başlayarak 9 olur.
2.3. $(())
Kullanımı
$(( ))
ifadesi, matematiksel ifadeleri çözmek için yaygın bir yöntemdir. Bu yöntem, daha okunabilir ve genellikle önerilen bir yaklaşımdır:
result=$((5 + 3))
echo $result # Çıktı: 8
Bu yöntem, değişkenleri aritmetik işlemlerde kullanırken de oldukça kullanışlıdır:
a=10
b=5
sum=$((a + b))
echo $sum # Çıktı: 15
Bu yöntemi kullanarak dört işlem, mod alma ve hatta parantezli ifadelerle karmaşık hesaplamalar yapabilirsiniz.
result=$(( (a + b) * 2 ))
echo $result # Çıktı: 30 (10 + 5, sonra 2 ile çarpılır)
3. Matematiksel Operatörler
Bash’te kullanabileceğiniz bazı temel matematiksel operatörler şunlardır:
+
: Toplama-
: Çıkarma*
: Çarpma (Joker karakter olarak değerlendirilmemesi için kaçırılmalıdır:\*
)/
: Bölme%
: Mod alma (kalanı bulma)**
: Üs alma (Bu yalnızca(( ))
içinde kullanılır)
a=15
b=4
# Toplama
sum=$((a + b))
echo "Toplama: $sum" # Çıktı: 19
# Çıkarma
difference=$((a - b))
echo "Çıkarma: $difference" # Çıktı: 11
# Çarpma
product=$((a * b))
echo "Çarpma: $product" # Çıktı: 60
# Bölme
division=$((a / b))
echo "Bölme: $division" # Çıktı: 3 (Tamsayı bölme)
# Mod
mod=$((a % b))
echo "Mod: $mod" # Çıktı: 3
Bash, bölme işlemlerinde yalnızca tam sayı sonuçlarını döndürür. Yani 15/4 ifadesi 3.75
yerine 3
olarak döner. Ondalık sayılarla çalışmak için bc
gibi harici araçlara başvurabilirsiniz.
4. Ondalık Sayılarla Çalışmak
Bash, yerel olarak ondalık sayılarla çalışmayı desteklemez. Bunun yerine bc
(Basic Calculator) gibi araçlar kullanmanız gerekir. bc
, Bash’te matematiksel hesaplamalar yapmak için oldukça kullanışlıdır.
result=$(echo "scale=2; 15 / 4" | bc)
echo "Sonuç: $result" # Çıktı: 3.75
Burada scale=2
, virgülden sonra iki basamak gösterecek şekilde sonucu ayarlamaktadır.
5. Basit Hesap Makinesi Script’i
Şimdi öğrendiklerimizi kullanarak basit bir hesap makinesi script’i yazalım:
!/bin/bash
echo “Birinci sayıyı girin:”
read num1
echo “İkinci sayıyı girin:”
read num2
echo “Yapmak istediğiniz işlemi seçin (+, -, *, /):”
read op
case $op in
+)
result=$((num1 + num2))
;;
-)
result=$((num1 – num2))
;;
*)
result=$((num1 * num2))
;;
/)
if [ $num2 -ne 0 ]; then
result=$((num1 / num2))
else
echo “Bölme işleminde bölen sıfır olamaz.”
exit 1
fi
;;
*)
echo “Geçersiz işlem.”
exit 1
;;
esac
echo “Sonuç: $result”
Bu script, kullanıcıdan iki sayı alır ve bir işlem türü seçmesini ister. Ardından seçilen işleme göre sonucu hesaplar ve ekrana yazdırır.
6. Matematiksel İşlemler İçin En İyi Uygulamalar
- Boşluklara Dikkat Edin:
expr
komutunu kullanırken operatörler arasında boşluk bırakmanız gerektiğini unutmayın. - Parantez Kullanımı: Karmaşık matematiksel ifadelerde
(( ))
veyalet
komutunu kullanarak okunabilirliği artırabilirsiniz. - Ondalık Sayılar İçin
bc
Kullanımı: Bash yerel olarak ondalık işlemleri desteklemediğinden, bu tür işlemler içinbc
veya başka bir hesaplama aracına başvurmanız gerekir.
Bash scriptlerinde matematiksel işlemler yapmak oldukça yaygındır ve bu işlemleri yapmak için expr
, let
ve $(( ))
gibi çeşitli yöntemler mevcuttur. Bu yöntemlerin her biri, basit ve etkili matematiksel hesaplamalar yapmanıza olanak tanır. Basit hesap makinesi örneği gibi uygulamalarla bu yöntemleri kullanarak pratik yapabilir ve Bash scriptlerinizi daha işlevsel hale getirebilirsiniz.