BÀI VIẾT

Hướng dẫn sử dụng lệnh bc trên Linux

4.5K
author Đặng Văn Chương - 2022-08-11 15:19:22 (GMT+7)

Giới thiệu

Lệnh bc được sử dụng cho máy tính dòng lệnh. Nó tương tự như máy tính cơ bản bằng cách sử dụng chúng ta có thể thực hiện các phép tính toán học cơ bản.

Các phép toán số học là cơ bản nhất trong bất kỳ loại ngôn ngữ lập trình nào. Hệ điều hành Linux hoặc Unix cung cấp lệnh bc và lệnh expr để thực hiện các phép tính số học. Tuy nhiên lệnh bc có tính ứng dụng cao hơn. Chúng ta cũng có thể sử dụng các lệnh này trong tập lệnh bash hoặc shell để đánh giá các biểu thức số học.

Cú pháp lệnh bc

bash (non-root)
bc [OPTIONS] 

Các tùy chọn lệnh bc:

  • -h: In hướng dẫn sử dụng lệnh bc.
  • -i: Buộc chế độ tương tác.
  • -l: Xác định thư viện toán học chuẩn.
  • -w: Đưa ra cảnh báo cho các tiện ích mở rộng cho POSIX bc.
  • -s: Xử lý chính xác ngôn ngữ POSIX bc.
  • -q: Không in GNU bc bình thường chào mừng.
  • -v: In số phiên bản bc.

Lệnh bc hỗ trợ các tính năng sau:

  • Toán tử số học.
  • Toán tử tăng hoặc giảm.
  • Toán tử chuyển nhượng.
  • Toán tử so sánh hoặc quan hệ.
  • Toán tử logic hoặc Boolean.
  • Các hàm toán học.
  • Câu điều kiện.
  • Các câu lệnh lặp lại.
  • ...

Sử dụng ùy chọn -v để hiển thị thông tin phiên bản bc:

bash (non-root)
bc -v
Kết quả
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.

Sử dụng tùy chọn -h dùng để hiển thị thông tin trợ giúp lệnh bc:

bash (non-root)
bc -h
Kết quả
usage: bc [options] [file ...]
  -h  --help         print this usage and exit
  -i  --interactive  force interactive mode
  -l  --mathlib      use the predefined math routines
  -q  --quiet        don't print initial banner
  -s  --standard     non-standard bc constructs are errors
  -w  --warn         warn about non-standard bc constructs
  -v  --version      print version information and exit

Lưu ý: Lệnh bc có thể thực hiện các phép toán đối với cả số nguyên và số thực.

Sử dụng lệnh bc với các phép toán số học

Phép cộng

bash (non-root)
echo "a + b" | bc

Chú thích tham số lệnh echo:

  • a: Là số tự nhiên thứ nhất.
  • b: Là số tự nhiên thứ hai.
  • +: Là phép cộng số học.
  • bc: Thực hiện phép toán số học.

Ví dụ: Tính tổng của hai số 45.2156 chúng ta dùng lệnh sau:

bash (non-root)
echo "45.21 + 56" | bc
Kết quả
101.21

Phép trừ:

bash (non-root)
echo "a - b" | bc

Chú thích tham số lệnh echo:

  • a: Là số tự nhiên thứ nhất.
  • b: Là số tự nhiên thứ hai.
  • -: Là phép trừ số học.
  • bc: Thực hiện phép toán số học. Ví dụ: Tính hiệu của hai số 45.2156 chúng ta dùng lệnh sau:
bash (non-root)
echo "45.21 - 56" | bc
Kết quả
-10.79

Phép nhân:

bash (non-root)
echo "a * b" | bc

Chú thích tham số lệnh echo:

  • a: Là số tự nhiên thứ nhất.
  • b: Là số tự nhiên thứ hai.
  • *: Là phép nhân số học.
  • bc: Thực hiện phép toán số học. Ví dụ: Tính tích hai số 45.2156 chúng ta dùng lệnh sau:
bash (non-root)
echo "45.21 * 56" | bc
Kết quả
2531.76

Phép chia hết:

bash (non-root)
echo "a / b" | bc

Chú thích tham số lệnh echo:

  • a: Là số tự nhiên thứ nhất.
  • b: Là số tự nhiên thứ hai.
  • /: Là phép chia số học.
  • bc: Thực hiện phép toán số học.

Ví dụ: Thực hiện phép chia hai số 40545 chúng ta dùng lệnh sau:

bash (non-root)
echo "405 / 45" | bc
Kết quả
9

Phép chia lấy phần dư:

bash (non-root)
echo "a % b" | bc

Chú thích tham số lệnh echo:

  • a: Là số tự nhiên thứ nhất.
  • b: Là số tự nhiên thứ hai.
  • %: Là phép chia lấy phần dư.
  • bc: Thực hiện phép toán số học.

Ví dụ: Thực hiện phép chia lấy dư của hai số 40845 chúng ta dùng lệnh sau:

bash (non-root)
echo "408 % 45" | bc
Kết quả
3

Phép tính lũy thừa với số mũ tự nhiên:

bash (non-root)
echo "a ^ b" | bc

Chú thích tham số lệnh echo:

  • a: Là số tự nhiên thứ nhất.
  • b: Là số tự nhiên thứ hai.
  • ^: Là phép lũy thừa cơ số a mũ b.
  • bc: Thực hiện phép toán số học.

Ví dụ: Tính lũy thừa của hai số 4.55 chúng ta dùng lệnh sau:

bash (non-root)
echo "4.5 ^ 5" | bc
Kết quả
1845.2

lưu trữ kết quả của phép toán hoàn chỉnh trong một biến

Để lưu trữ kết quả của phép toán trong một biến chúng ta dùng lệnh sau:

bash (non-root)
variable=`echo "a + b" | bc` 

Chú thích tham số lệnh echo

  • variable: Là tên biến bạn muốn gán cho biểu thức toán học.
  • a + b: Là phép toán tính tổng hai số.
  • bc: Thực hiện phép toán số học.

Ví dụ: Hãy tính tổng của hai số 5758 sau đó lưu vào biến x, chúng ta dùng lệnh như sau:

bash (non-root)
x=`echo "57 + 58" | bc` 

Để xem kết quả biến x, chúng ta dùng lệnh sau:

bash (non-root)
echo $x
Kết quả
115

Toán tử tăng dần

Có hai loại toán tử tăng dần như sau:

  • ++var: Tăng biến lên 1 đơn vị trước khi in biến ra màn hình (tiền tố).
  • var++: Tăng biên lên 1 đơn vị sau khi in biến ra mà hình (hậu tố).

Ví dụ minh họa:

bash (non-root)
echo "var = 4;  ++var" | bc
Kết quả
5

Lệnh này sẽ tăng biến var lên 1 đơn vị trước khi in ra màn hình.

bash (non-root)
echo "var = 4;  var++" | bc
Kết quả
4

Lệnh này kết quả bằng 4 vì ++ là hậu tố, và sẽ được tăng lên 1 (5) ở lệnh tiếp theo

Toán tử giảm dần

Có hai loại toán tử giảm dần như sau:

  • --var: Giảm biến xuống 1 đơn vị trước khi in biến ra màn hình (tiền tố).
  • var--: Giảm biên xuống 1 đơn vị sau khi in biến ra mà hình (hậu tố).

Ví dụ minh họa:

bash (non-root)
echo "var = 4;  --var" | bc
Kết quả
3

Lệnh này sẽ làm giảm biến var 1 đơn vị trước khi in ra màn hình.

bash (non-root)
echo "var = 4;  var--" | bc
Kết quả
4

Lệnh này kết quả bằng 4 vì -- là hậu tố, và sẽ giảm 1 (3) ở lệnh tiếp theo.

Toán tử so sánh

Các toán tử so sánh bao gồm:

  • var1 < var2: So sánh bé hơn.
  • var1<= var2: So sánh bé hơn hoặc bằng.
  • var1 > var2: So sánh lớn hơn.
  • var1 >= var2: So sánh lớn hơn hoặc bằng.
  • var1 == var2: So sánh bằng.
  • var1 != var2: So sánh không bằng.

Kết quả của các phép so sánh được trả về dạng boolean: đúng (1) hoặc sai (0).

Ví dụ:

bash (non-root)
echo "5 > 2" | bc
Kết quả
1

Biểu thức so sánh này trả về 1 (đúng) vì 5 > 2 là 1 biểu thức đúng.

bash (non-root)
echo "5 <= 2" | bc
Kết quả
0

Biểu thức so sánh này trả về 0 (sai) vì 5 <= 2 là 1 biểu thức sai.

bash (non-root)
echo "5 == 2" | bc
Kết quả
0

Biểu thức so sánh này trả về 0 (sai) vì 5 == 2 là 1 biểu thức sai.

Toán tử logic

Toán tử logic bao gồm: và (&&), hoăc (||)

  • var1 && var2 : Kết quả là 1 nếu cả hai biểu thức đều khác 0.
  • var1 || var2 : Kết quả là 1 nếu một trong hai biểu thức khác 0.

Ví dụ:

bash (non-root)
echo "0 && 5" | bc
Kết quả
0

Kết quả là sai (0) vì đây là biểu thức và (&&) phải đáp ứng hai vế đều bằng 0 thì biểu thức này mới cho kết quả đúng.

bash (non-root)
echo "0 || 5" | bc
Kết quả
1

Kết quả là đúng (1) vì đây là biểu thức hoặc (||) chỉ cần đáp ứng 1 trong hai vế có 1 vế bằng 0 thì biểu thức này cho kết quả đúng.

Các hoàm toán học

Một số hàm toán học được hỗ trợ là:

  • s(x) : sin của x, x tính bằng radian.
  • c(x) : cos của x, x tính bằng radian.
  • l(x) : Lôgarit tự nhiên của x.
  • sqrt(x) : Căn bậc hai của số x.
  • length(x) : trả về số chữ số trong x.

Ví dụ minh họa:

Đầu tiên chúng ta hãy tạo một biến pi có giá trị bằng 3.14

bash (non-root)
pi=`echo "3.14" | bc`

Kiểm tra biến pi

bash (non-root)
echo $pi
Kết quả
3.14

Lưu ý: Biến pi =3.14 là giá trị gần đúng, nên có thể có sai số nhỏ trong các phép toán

Ví dụ: Tính sin của góc "pi/6" chúng ta dùng lệnh như sau:

bash (non-root)
echo "s ($pi / 6)" | bc -l
Kết quả
0.5

Chú thích tham số lệnh echo:

  • s: Là hàm toán học tính sin.
  • $pi / 6: Là biểu thức tính sin góc $pi / 6 độ.
  • bc: Thực hiện biểu thức toán học tính hàm sin.
  • -l: Xác định thư viện toán học chuẩn.

Ví dụ: Tính cos của góc "pi / 3" chúng ta dùng lệnh như sau:

bash (non-root)
echo "c ($pi / 3)" | bc -l
Kết quả
0.5

Chú thích tham số lệnh echo:

  • c: Là hàm toán học tính cos.
  • $pi / 3: Là biểu thức tính cos góc $pi / 3 độ.
  • bc: Thực hiện biểu thức toán học tính hàm sin.
  • -l: Xác định thư viện toán học chuẩn.

Ví dụ; Tính logarit tự nhiên (ln) của một số tự nhiên

bash (non-root)
echo "l (a)" | bc -l

Chú thích tham số lệnh echo:

  • a: Là số tự nhiên cần tính logarit.
  • l: Là logarit tự nhiên của số a
  • bc: Thực hiện biểu thức toán học tính hàm sin.
  • -l: Xác định thư viện toán học chuẩn.
bash (non-root)
echo "l (5)" | bc -l
Kết quả
1.60943791243410037460

Ví dụ: Tính căn bậc hai của một số tự nhiên:

bash (non-root)
echo "sqrt (a)" | bc -l

Chú thích tham số lệnh echo:

  • a: Là số tự nhiên cần tính căn bậc hai.
  • sqrt: Là hàm tính căn bậc hai của số a.
  • bc: Thực hiện biểu thức toán học tính căn bậc hai.
  • -l: Xác định thư viện toán học chuẩn.
bash (non-root)
echo "sqrt (4)" | bc -l
Kết quả
2

Ví dụ: Đếm số chữ số của một số chúng ta dùng lệnh sau:

bash (non-root)
echo "length(x)" | bc -l

Chú thích tham số lệnh echo:

  • length(x): Tính độ dài của chuỗi số x truyền vào.
  • bc: Thực hiện biểu thức toán học.
  • -l: Xác định thư viện toán học chuẩn.
bash (non-root)
echo "length(45613215691615)" | bc -l
Kết quả
14

Kết luận

Trong bài hướng dẫn này, chúng ta đã tìm hiểu về lệnh bc trên Linux. Sử dụng lệnh bc thành thạo là điều cần thiết đối với người dùng và quản trị viên, những người thường xuyên thực hiện các phép tính cơ bản hoặc các tập lệnh lập trình trên Linux. Lệnh này thậm chí còn hữu ích hơn khi được kết hợp với echo hoặc các lệnh khác, vì bc có thể đọc kết quả từ các lệnh đó và thực hiện các phép tính một cách nhanh chóng.


Bạn có làm được theo hướng dẫn này không?

Bài liên quan

Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh tạo một dãy số tăng dần trên Linux
Lệnh tạo một dãy số tăng dần trên Linux

Object Storage

Chuẩn S3, không giới hạn băng thông

Object Storage

Thuê Server Riêng

Chi phí thấp, cấu hình cao

Thuê Server Riêng
Thông tin tác giả
Bình luận

Tính năng đang được phát triển

Đang tải bình luận