[ShellScript] Bốn cách tính toán trong bash shell script và trên 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 đó.

Bốn cách tính toán trong bash shell hay trên Linux

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 <<< "3.4+7/8-(5.94*3.14)"
-15.25
# echo "3.4+7/8-(5.94*3.14)" | bc
-15.25
# echo "2/3" | bc
0
# echo "scale=2; 2/3" | bc
.66
# echo "(2/3)+(7/8)" | bc
0
# echo "scale=2;(2/3)+(7/8)" | bc
1.53
# echo "scale=4;(2/3)+(7/8)" | bc
1.5416
# echo "scale=6;(2/3)+(7/8)" | bc
1.541666
# echo "(2/3)+(7/8)" | bc -l
1.54166666666666666666

 
Ok, như vậy ít nhiều bạn cũng đã có thể nắm qua 4 cách để tính toán các con số trong bash shell script và trên Linux rồi. Chúc các bạn thực hành tốt đẹp.

Previous article[ShellScript] Tìm username có tên dài nhất và ngắn nhất trên Linux
Next article[Python] Hướng dẫn cài đặt Python 2.7.13 trên CentOS/Ubuntu
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !