Bash'te sayısal değişkenler

Bash Script Yazmaya Giriş

Alex Scriven

Data Scientist

Diğer dillerde sayılar

Sayılar, R ve Python gibi çoğu REPL'de (konsolda) olduğu gibi kabuğa yerleşik değildir

Python veya R'de şunu yapabilirsiniz:

>>> 1 + 4
5

İstediğiniz sonucu verir!

Bash Script Yazmaya Giriş

Kabukta sayılar

 

Sayılar yerel olarak desteklenmez:

(Terminalde)

1 + 4
bash: 1: command not found
Bash Script Yazmaya Giriş

expr'a giriş

 

expr, (cat veya grep gibi) kullanışlı bir yardımcı programdır

Bu artık (terminalde) çalışır:

expr 1 + 4
5

Güzel!

Bash Script Yazmaya Giriş

expr'ın sınırlamaları

expr ondalıkları yerel olarak işleyemez:

(Terminalde)

expr 1 + 2.5
expr: not a decimal number: '2.5'

Endişe etmeyin! (Çözüm var)

Bash Script Yazmaya Giriş

bc'ye giriş

bc (basic calculator), komut satırı için kullanışlı bir programdır.

Terminalde açıp hesaplama yapabilirsiniz:

Kabukta BC programını kullanma

Bash Script Yazmaya Giriş

bc'ye sayı göndermek

 

Hesaplayıcıyı açmadan bc kullanmak, borulama ile mümkündür:

echo "5 + 7.5" | bc
12.5
Bash Script Yazmaya Giriş

bc scale bağımsız değişkeni

bc, ondalık basamak sayısı için scale bağımsız değişkenine de sahiptir.

echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc

Terminalde satırları ayırmak için ; kullanımına dikkat edin

3.333
Bash Script Yazmaya Giriş

Bash betiklerinde sayılar

Sayısal değişkenleri, metin değişkenleri gibi atayabiliriz:

dog_name='Roger'
dog_age=6

echo "My dog's name is $dog_name and he is $dog_age years old"

dog_age="6" çalışır, ancak onu bir metin yapar!

My dog's name is Roger and he is 6 years old
Bash Script Yazmaya Giriş

Çift parantez gösterimi

Sayısal değişkenler için tek parantezli gösterime bir varyant:

expr 5 + 7
echo $((5 + 7))
12
12

Dikkat: Bu yöntem bc değil, expr kullanır (ondalık yok!)

Bash Script Yazmaya Giriş

Kabuk içinde kabuk tekrar

Önceki derste kabuğa nasıl çağrı yaptığımızı hatırlıyor musunuz?

Sayısal değişkenler için çok kullanışlıdır:

model1=87.65
model2=89.20

echo "The total score is $(echo "$model1 + $model2" | bc)"
echo "The average score is $(echo "($model1 + $model2) / 2" | bc)"
The total score is 176.85
The average score is 88
Bash Script Yazmaya Giriş

Haydi pratik yapalım!

Bash Script Yazmaya Giriş

Preparing Video For Download...