Variabel numerik di Bash

Pengantar Bash Scripting

Alex Scriven

Data Scientist

Angka di bahasa lain

Angka tidak tersedia bawaan di shell seperti kebanyakan REPL (konsol) seperti R dan Python

Di Python atau R Anda dapat melakukan:

>>> 1 + 4
5

Itu akan memberi hasil yang Anda inginkan!

Pengantar Bash Scripting

Angka di shell

 

Angka tidak didukung secara native:

(Di terminal)

1 + 4
bash: 1: command not found
Pengantar Bash Scripting

Mengenal expr

 

expr adalah program utilitas yang berguna (seperti cat atau grep)

Ini sekarang akan berfungsi (di terminal):

expr 1 + 4
5

Bagus!

Pengantar Bash Scripting

Batasan expr

expr tidak dapat menangani angka desimal secara native:

(Di terminal)

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

Jangan khawatir! (Ada solusinya)

Pengantar Bash Scripting

Mengenal bc

bc (basic calculator) adalah program baris perintah yang berguna.

Anda dapat masuk ke terminal dan melakukan perhitungan:

Menggunakan program BC di shell

Pengantar Bash Scripting

Mengirim angka ke bc

 

Menggunakan bc tanpa membuka kalkulator bisa dengan piping:

echo "5 + 7.5" | bc
12.5
Pengantar Bash Scripting

Argumen scale di bc

bc juga memiliki argumen scale untuk jumlah angka desimal.

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

Perhatikan penggunaan ; untuk memisahkan 'baris' di terminal

3.333
Pengantar Bash Scripting

Angka dalam skrip Bash

Kita dapat menetapkan variabel numerik seperti variabel string:

dog_name='Roger'
dog_age=6

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

Perhatikan dog_age="6" akan berjalan, tetapi menjadikannya string!

My dog's name is Roger and he is 6 years old
Pengantar Bash Scripting

Notasi kurung ganda

Variasi notasi kurung ganda untuk variabel numerik:

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

Perhatikan metode ini memakai expr, bukan bc (tanpa desimal!)

Pengantar Bash Scripting

Shell di dalam shell: ulasan

Ingat cara kita memanggil shell pada pelajaran sebelumnya?

Sangat berguna untuk variabel numerik:

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
Pengantar Bash Scripting

Ayo berlatih!

Pengantar Bash Scripting

Preparing Video For Download...