Tính toán biến trong shell linux

Với bài viết này mình sẽ trình bày “bốn cách tính toán trong bash shell” hay trên Linux thường áp dụng cho các hoạt động code shell script lập trình trên Linux rất nhiều. Mỗi phương thức, công cụ đều sẽ có những cách sử dụng và lưu ý riêng nên các bạn có thể gõ lệnh nhiều vào để quen với cách sử dụng lệnh đó.

Contents

  • Bốn cách tính toán trong bash shell hay trên Linux
    • 1. Expr
    • 2. Let
    • 3. Sử dụng $[[expression]] hoặc $[expression]
    • 4. “bc” – An arbitrary precision calculator language”

1. Expr

Kiểu dữ liệu số áp dụng : số nguyên [integer].
Dùng để tính toán đơn giản cộng trừ nhân chia: “+” , “” , “*” , “/” .

Ví dụ 1:

# expr 1 + 1
2
# myvar=$[expr 1 + 1]
# echo ${myvar}
2
# expr $myvar + 1
3
# expr $myvar / 3
1
# expr $myvar \* 3
9

 
Lưu ý :
– Phải chú ý khoảng trắng, tách biệt giữa các số các biến không được để dính liền.

[Sai] : expr 1+1
[Đúng] : expr 1 + 1

– Ở phép toán nhân, các bạn phải thêm dấu “\” trước dấu “*” thì lệnh mới hiểu đó là phép nhân.

[Sai] : expr 3 * 3
[Đúng] : expr 3 \* 3

2. Let

Kiểu dữ liệu số áp dụng : số nguyên [integer] .
Dùng để tính toán đơn giản “+” , “” , “*” , “/” .

Ví dụ 2:

# a=5
# let a+=1
# echo ${a}
6
# let a+1
# echo ${a}
6
# let b=a+5; echo ${b}
11
# let c=a+b; echo ${c}
17
# let d=$b+3; echo ${d}
14

 
Lưu ý :
– Phải sử dụng biến đã quy định trước trong biểu thức tính toán “let“, không áp dụng số rời nhau.

[Sai]: let 5+5
[Đúng] : let var=5+5

– Thằng này phải viết các biến số hoặc số dính liền nhau không được tách khoảng trắng như “expr

[Sai] : let a + 1
[Đúng] : let a+1

3. Sử dụng $[[expression]] hoặc $[expression]

Kiểu dữ liệu số áp dụng : số nguyên [integer] .
Dùng để tính toán đơn giản “+” , “-” , “*” , “/” .

Ví dụ 3:

# echo $[[5+6]]
11
# echo $[5+7]
12
# echo $[5+7.5]
bash: 5+7.5: syntax error: invalid arithmetic operator [error token is ".5"]
# var=10
# echo ${var}
10
# var=$[[var+5]]
# echo $var
15
# echo var=$[var+5]
var=20
# echo $[var+5]
20
# echo $var
15
# var=$[var+5]
# echo $var
20
# var2=7
# var=$[[var+${var2}]]
# echo $var
27

 
Lưu ý:
– Mọi người theo dõi các dòng code trên sẽ thấy các trường hợp sử dụng

4. “bc” – An arbitrary precision calculator language”

Kiểu dữ liệu số sử dụng : integer, float [số nguyên và số thập phân] .
Dùng trong rất nhiều trường hợp không chỉ tính toán cơ bản, công cụ tính toán mạnh mẽ nhất trong shell, nắm tốt nó thì không sợ gì cả. Đây là công cụ bên thứ 3 nên nếu OS không có thì ta cần cài đặt vào gói ‘bc‘.
Các trường hợp ngoài tính toán có thể sử dụng “bc” : đổi số nhị phân – thập phân – thập lục phân, so sánh các số với nhau, tính toán các số thập phân,… và rất nhiều tính năng khác.

Ví dụ 4:

# echo "2 + 3" | bc
5
# bc 

Bài Viết Liên Quan

Chủ Đề