Numeric variables in Bash

Submitted by tinhxleev2 on Mon, 10/25/2021 - 06:21

Số không được xây sẵn ở shell như ở R hay Python.

Tương tự như grep hay cat thì expr là một chương trình hữu dụng. 

expr 10 + 11

21

Hạn chế của expr đó là nó không ôm được 

expr 12 + 1.5

Việc này có thể giải quyết bằng cách bc (basic calculator), gọi sử dụng bằng bc

bc

echo "12 + 1.5" | bc

bc còn có đối biến là scale để xác định bao nhiêu số sau dấu phảy, như ví dụ dưới đấy lấy 3 số sau dấu phảy. 

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

6.666

Số ở trong bash scripting

ten='Hương'

so_ma=6

Sử dụng 

expr 12 + 14

echo $((12 + 14))

Đều cho kết quả là 26

a shell within a shell liên quan tới biến con số 

so1=12.14

so2=17.25

echo "tong so la $(echo "$so1 + $so2" | bc)"

echo "tong so la $(echo "$so1 + $so2 / 2" | bc)"

Một ví dụ khác script.sh chứ dòng lệnh chuyển từ độ F sang độ C

# Get first ARGV into variable

temp_f=$1

# Trừ đi 32

temp_f2=$(echo "scale=2; $temp_f - 32" | bc)

# Nhân 5 chia cho 9 và in

temp_c=$(echo "scale=2; $temp_f2 * 5 / 9" | bc)

# In kết quả ra

echo $temp_c

# Đổi 112 độ F sang độ C

bash script.sh 112

Learing