Shell Script là một ngôn ngữ lập trình mạnh mẽ, đòi hỏi sử dụng các biểu thức tính toán. Tuy nhiên, việc xử lý toán học trong Shell Script có một số điểm khác biệt so với các ngôn ngữ khác. Bạn cần sử dụng cú pháp riêng để khai báo biểu thức để trình biên dịch Shell hiểu và xử lý. Trong bài viết này, chúng ta sẽ cùng khám phá cách xử lý toán học trong Shell Script.
Sử dụng expr
với kiểu integer
Trong các ngôn ngữ khác, chúng ta có thể thực hiện các phép toán cơ bản như cộng (+), trừ (-), nhân (), chia (/) một cách dễ dàng. Tuy nhiên, trong Linux, chúng ta cần sử dụng lệnh expr
để thực hiện các phép toán này. Lưu ý rằng, trong Shell, phép nhân được biểu diễn bằng dấu `vì
*` là ký tự đặc biệt trong Shell.
Để sử dụng expr
, hãy mở file expr.sh
và nhập nội dung sau:
#!/bin/sh a=10 b=5 sum=`expr $a + $b` echo "Tổng: $sum" sub=`expr $a - $b` echo "Hiệu: $sub" mul=`expr $a \* $b` echo "Tích: $mul" div=`expr $a / $b` echo "Thương: $div" mod=`expr $a % $b` echo "Số dư: $mod"
Kết quả khi chạy file này bằng lệnh sh expr.sh
sẽ là:
Tổng: 15 Hiệu: 5 Tích: 50 Thương: 2 Số dư: 0
Như vậy, kết quả đã chính xác như mong đợi. Lưu ý là bạn cần sử dụng biểu thức expr
để thực hiện các phép toán này.
Sử dụng factor
chia thành tích các số nguyên tố
Lệnh factor
trong Shell Script sẽ phân tích một số thành các thừa số nguyên tố và tích của chúng. Ví dụ, nếu chúng ta nhập số 12, trong tập số từ 1 đến 12, các số nguyên tố là 2, 3, 5, 7, 11. Kết quả sẽ là 2 2 3 vì tích của ba số này bằng 12.
Tuy nhiên, lệnh này ít được sử dụng trong lập trình Shell Script và không có tác dụng quan trọng.
Sử dụng jot
để sinh ra dãy số liên tiếp
Lệnh jot
được sử dụng để sinh ra một dãy số ngẫu nhiên trong một khoảng cho trước. Nếu không thiết lập khoảng, nó sẽ sinh ra các số liên tiếp bắt đầu từ 1. Cú pháp của lệnh jot
như sau:
Trường hợp 1 tham số
Trường hợp này, lệnh sẽ sinh ra các số liên tiếp bắt đầu từ 1.
Trường hợp 2 tham số
Trường hợp này, lệnh sẽ sinh ra các số liên tiếp bắt đầu từ tham số thứ 2.
Trường hợp 3 tham số
Trường hợp này, lệnh sẽ sinh ra các số từ tham số thứ 2 đến tham số thứ 3. Có hai trường hợp xảy ra:
- Nếu khoảng xác định ngắn hơn số lượng cần sinh, lệnh sẽ sinh ra các số trùng nhau.
- Nếu khoảng xác định dài hơn số lượng cần sinh, lệnh sẽ sinh ra các số không liên tiếp.
Tuy còn nhiều điểm khác để khám phá, nhưng chúng ta sẽ tìm hiểu chúng trong những bài viết sau.
Sử dụng bc
để tính toán với số thực
Lệnh expr
chỉ hoạt động với số nguyên, để tính toán với số thực, bạn cần sử dụng lệnh bc
. Cú pháp của lệnh bc
như sau:
echo "expression" | bc
Nếu bạn gặp lỗi khi chạy lệnh này, có nghĩa là bạn chưa cài đặt bc
. Để cài đặt bc
, hãy thực hiện lệnh sau:
sudo apt-get install bc
Kết quả thường sẽ làm tròn số, để lấy kết quả chính xác, bạn có thể sử dụng tham số -l
sau lệnh bc
.
Lời kết
Như vậy, chúng ta đã tìm hiểu một số lệnh cơ bản để xử lý toán học trong Shell Script. Những lệnh này là nền tảng để bạn thực hiện các phép toán trong việc viết script. Shell Script ngày càng trở nên hấp dẫn, và việc lập trình không dễ dàng như bạn nghĩ. Hãy tiếp tục khám phá thêm những điều mới trong các bài viết tiếp theo.
Bài viết này được đăng tại [free tuts .net].