Shell Scripts: Aritmetik İşlemler
Merhaba arkadaşlar. Linux Shell Script Geliştirmek diye başladığım yazı dizisinin bir diğer yazısında daha birlikteyiz. Aritmetik programlamanın olmazsa olmazlarındandır. Sonuçta iki sayıyı toplayamıyorsak, neden kod yazalım değil mi? Shell script geliştirirken de bir takım matematiksel işlemlere ihtiyaç duyacağız. Bu yazıda, bazı matematiksel işlemleri nasıl yapacağımızı göreceğiz.
Shell, integer aritmetiği yapmamızı sağlayan altyapıya sahip.
Yani ondalık sayılar ile işlem yapamıyor veya ondalık sonuçlar elde edemiyoruz.
Eğer ondalık sayılarla çalışmamız gerekirse, bc
isimli komutu kullanmamız gerekiyor
fakat bu yazıda buna değinmeyeceğim.
Öncelikle, aritmetik işlemler için syntax olarak dolar işaretinden
sonra iki tane iç içe parantez kullanmamız gerekiyor.
Yani kodumuz $((aritmetik işlem))
şeklinde olmalı.
Bu işlemin sonucunu daha sonra doğrudan konsola yazdırabiliyor veya bir değişkene atama yapabiliyoruz.
Aritmetik Operatörler
Operatör | Açıklama | Örnek | Sonuç |
---|---|---|---|
+ |
Toplama | echo $((5 + 3)) |
8 |
- |
Çıkarma | echo $((5 - 3)) |
2 |
* |
Çarpma | echo $((5 * 3)) |
15 |
/ |
Bölme | echo $((5 / 3)) |
1 |
** |
Üs Alma | echo $((5 ** 3)) |
125 |
X++ |
Önce oku, sonra bir arttır | X=4
echo $((X++))
echo $((X)) |
4 5 |
X-- |
Önce oku, sonra bir azalt | X=4
echo $((X--))
echo $((X)) |
4 3 |
++X |
Önce bir arttır, sonra oku | X=5
echo $((++X)) |
6 |
--X |
Önce bir azalt, sonra oku | X=5
echo $((--X)) |
4 |
% |
Mod Alma | echo $((7 % 5)) |
2 |
Çalışan Örnek Bir Kod
Aşağıdaki kod 1 arttırma ve 1 azaltma işlemleri haricindeki işlemlerin yapıldığı, çalış deyince çalışan örnek bir programdır.
#!/bin/bash
# Shell Scripting
# Aritmetic Operations
# Addition
# Prints 8
echo -n "3 + 5 = "
echo $((3 + 5))
# Subtraction
# Prints 4
echo -n "7 - 3 = "
echo $((7 - 3))
# Multiplication
# Prints 12
echo -n "4 * 3 = "
echo $((4 * 3))
# Division
# Prints 4
echo -n "17 / 4 = "
echo $((17 / 4))
# Modulus
# Prints 2
echo -n "7 % 5 = "
echo $((7 % 5))
# Power
# Prints 32
echo -n "2 ** 5 = "
echo $((2 ** 5))
Ve programı çalıştırmak istemeyenler için, programın sonucu böyle oluyor:
3 + 5 = 8
7 - 3 = 4
4 * 3 = 12
17 / 4 = 4
7 % 5 = 2
2 ** 5 = 32
İşlem Sonucunu Değişkene Atamak ve Değişkenler ile İşlem Yapmak
Başlığı önemli birşey anlatacakmış gibi attım ama bu da zor birşey değil. Hatta burayı okumadan deneme yanılma ile de bulabilirsiniz. Doğrudan örnek bir kod yazayım.
#!/bin/bash
# Shell Scripting
# Aritmetic Operations
X=$((5 + 4))
Y=$((2 + 1))
SUM=$(($X + $Y))
MPY=$(($X * $Y))
echo "sum: $SUM, multiply: $MPY"
# You don't need to use $ sign for variables in $(( ))
SUM=$((X + Y))
MPY=$((X * Y))
echo "sum: $SUM, multiply: $MPY"
Yukarıdaki iki örnekte aynı işlemleri iki farklı şekilde yaptım.
Burada anlatmak istediğim, $(())
içerisinde kullandığımız değişkenlerin başına $
işareti koymak zorunda değiliz.
Yukarıdaki kodu çalıştırdığınızda iki echo
komutunun da aynı şeyleri ekrana yazdırdıklarını göreceksiniz.
Evet arkadaşlar. Matematik ile ilgili de yeteri kadar ahkam kestik. Bundan sonraki yazılarımı da okumanız dileğiyle. Kodlu kalın.