-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path08-bc_ornekleri.sh
executable file
·58 lines (40 loc) · 1.68 KB
/
08-bc_ornekleri.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#! /bin/bash
#Konu anlatımı: https://alisezisli.com.tr/shell-script-6-matematiksel-islemler/
#Bash üzerinde ondalıklı sayılarla işlem yapmak:
#bc kullanımı:
#Değişken tanımları:
#Buraya dikkat. let kullanamam.
#Çünkü bash, let'i matematiksel ifadelerde kullanılıyor
#ve ondalıklı sayıları tanımadığı için hata veriyor:
sayi1=29.2
sayi2=13.75
#Toplama işlemi:
#Burada, daha önceki örneklerde de karşımıza çıkan "command substitution" kullanılıyor.
#$() içerisinde yapılan işlemin sonucu, dışarıdaki değişkene atılıyor.
#$sayi1+$sayi2 ifadesi echo'lanıyor ve pipe üzerinden bc programına gönderiliyor.
#Dikkat edin, yine let yok. Çünkü bash'e göre, ortada matematiksel bir ifade yok:
toplama=$(echo "$sayi1+$sayi2" | bc -l)
#Çıkarma işlemi:
cikarma=$(echo "$sayi1-$sayi2" | bc -l)
#Çarpma işlemi:
carpma=$(echo "$sayi1*$sayi2" | bc -l)
#Bölme işlemi:
bolme=$(echo "$sayi1/$sayi2" | bc -l)
#Kalan bulma (modulus) işlemi:
modulus=$(echo "$sayi1%$sayi2" | bc -l)
#Üs alma (Buraya dikkat. İşlemi bc programına yaptıracağımız için, üs alma operatörü olarak ^ kullanıyoruz:
us=$(echo "$sayi1^3" | bc -l)
echo "$sayi1+$sayi2 işleminin sonucu: $toplama"
echo "$sayi1-$sayi2 işleminin sonucu: $cikarma"
echo "$sayi1*$sayi2 işleminin sonucu: $carpma"
echo "$sayi1/$sayi2 işleminin sonucu: $bolme"
echo "$sayi1%$sayi2 işleminin sonucu: $modulus"
echo "$sayi1^3 işleminin sonucu: $us"
#scale örneği.
#Virgülden sonra kaç basamak görüntüleneceğini belirtebilirsiniz:
birinci_sayi=22
ikinci_sayi=7
bolum=$(echo "$birinci_sayi/$ikinci_sayi" | bc -l)
echo $bolum
bolum=$(echo "scale=2; $birinci_sayi/$ikinci_sayi" | bc -l)
echo $bolum