Lệnh expr trong Linux thực hiện đánh giá một biểu thức nhất định và hiển thị đầu ra tương ứng của nó. Lệnh này được sử dụng để:
1. Thực hiện các phép toán cơ bản như cộng, trừ, nhân, chia và mô đun trên số nguyên.
2. Đánh giá các biểu thức chính quy, thực hiện các hoạt động trên chuỗi như tìm chuỗi con, tính độ dài của chuỗi, và các thao tác liên quan đến xử lý chuỗi.
Đây là công cụ hữu ích trong việc tự động hóa các tác vụ trong các script shell Linux, nơi mà việc tính toán và xử lý chuỗi thường xuyên được thực hiện.
1. Cú pháp lệnh expr
Chú thích tham số lệnh expr:
[arithmetic expression]
: Là biểu thức toán học.
Các tùy chọn lệnh expr:
Tùy chọn --version
sử dụng để hiển thị thông tin phiên bản expr:
expr (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Parker, James Youngman, and Paul Eggert.
Tùy chọn --help
dùng để hiển thị thông báo trợ giúp lệnh expr
Usage: expr EXPRESSION
or: expr OPTION
--help display this help and exit
--version output version information and exit
Print the value of EXPRESSION to standard output. A blank line below
separates increasing precedence groups. EXPRESSION may be:
ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2
ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0
ARG1 < ARG2 ARG1 is less than ARG2
ARG1 <= ARG2 ARG1 is less than or equal to ARG2
ARG1 = ARG2 ARG1 is equal to ARG2
ARG1 != ARG2 ARG1 is unequal to ARG2
ARG1 >= ARG2 ARG1 is greater than or equal to ARG2
ARG1 > ARG2 ARG1 is greater than ARG2
ARG1 + ARG2 arithmetic sum of ARG1 and ARG2
ARG1 - ARG2 arithmetic difference of ARG1 and ARG2
ARG1 * ARG2 arithmetic product of ARG1 and ARG2
ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2
ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2
STRING : REGEXP anchored pattern match of REGEXP in STRING
match STRING REGEXP same as STRING : REGEXP
substr STRING POS LENGTH substring of STRING, POS counted from 1
index STRING CHARS index in STRING where any CHARS is found, or 0
length STRING length of STRING
+ TOKEN interpret TOKEN as a string, even if it is a
keyword like 'match' or an operator like '/'
( EXPRESSION ) value of EXPRESSION
2. Sử dụng lệnh expr cho các phép toán số học cơ bản
Phép cộng
Chú thích tham số lệnh expr:
a
: Là số nguyên thứ nhất.b
: Là số nguyên thứ hai.+
: Là phép cộng hai số nguyên.
Ví dụ minh họa:
9
Phép trừ
Chú thích tham số lệnh expr:
a
: Là số nguyên thứ nhất.b
: Là số nguyên thứ hai.-
: Là phép trừ hai số nguyên.
Ví dụ minh họa:
1
Phép nhân
Chú thích tham số lệnh expr:
a
: Là số nguyên thứ nhất.b
: Là số nguyên thứ hai.\*
: Là phép nhân hai số nguyên.
Ví dụ minh họa:
20
Phép chia
Chú thích tham số lệnh expr:
a
: Là số nguyên thứ nhất.b
: Là số nguyên thứ hai./
: Là phép chia hai số nguyên.
Ví dụ minh họa:
4
Phép chia lấy dư
Chú thích tham số lệnh expr:
a
: Là số nguyên thứ nhất.b
: Là số nguyên thứ hai.%
: Là phép chia lấy phần dư hai số nguyên.
Ví dụ minh họa:
3
Đếm độ dài chuỗi
Để đếm độ dài một chuỗi trên Linux chúng ta có thể dùng lệnh sau:
Chú thích tham số lệnh expr:
length $a
: Là độ dài chuỗi kí tựa
. Ví dụ minh họa: Kiểm tra độ dài chuỗi123host
chúng ta dùng lệnh sau:
6
Kiểm tra chỉ số của kí tự trong một chuỗi
Chú thích tham số lệnh expr:
index $a
: Kiểm tra chỉ số của kí tự trong chuỗia
.b
: Là kí tự cần kiểm tra chỉ số trong chuỗia
. Ví dụ minh họa: Kiểm tra chỉ số của kí tựs
trong chuỗi123host
chúng ta dùng lệnh sau:
5
So sánh hai biểu thức
Sử dụng lệnh “expr”, chúng ta cũng có thể so sánh hai biểu thức. Để so sánh các biểu thức, hãy sử dụng các toán tử logic như “=,>,! =”.
- Nếu điều kiện hợp lệ, nó sẽ hiển thị
1
. - Nếu điều kiện không hợp lệ, nó sẽ hiển thị
0
trong đầu ra.
Chú thích tham số lênh expr:
a
: Là số nguyên thứ nhất.b
: Là số nguyên thứ hai.=
: Là phép so sánh bằng. Ví dụ minh họa: So sánh hai số nguyên 30 và 40
0
1
So sánh không bằng
Chú thích tham số lệnh expr:
a, b
: Là các số nguyên cần so sánh.\!=
: Là phép so sánh không bằng.
Ví dụ minh họa: So sánh không bằng hai số 20 và 30 bằng lệnh sau:
1
So sánh lớn hơn, bé hơn
Để so sánh lớn hơn chúng ta dùng lệnh sau:
Để so sánh bé hơn chúng ta dùng lệnh sau:
Chú thích tham số lệnh expr:
a
: Là số nguyên thứ nhất.b
: Là số nguyên thứ hai.\>
: Là phép so sánh lớn hơn.\<
: Là phép so sánh bé hơn.
Ví dụ minh họa: So sánh lớn hơn, bé hơn hai số nguyên 30 và 40 chúng ta dùng lệnh sau:
0
1
So khớp số kí tự của hai chuỗi
Giả sử, chúng ta có hai chuỗi và muốn khớp số ký tựcủa hai chuỗi với nhau. Hãy thực hiện theo cú pháp:
Chú thích tham số lệnh expr:
string1
: Là nội dung chuỗi thứ nhất.string2
: Là nội dung chuỗi thứ hai.
Ví dụ minh họa: Đếm số kí tự khớp nhau của hai chuỗi 123host
và 123hostvn
chúng ta dùng lệnh như sau:
7
Lệnh expr trong Linux đánh giá và hiển thị đầu ra tiêu chuẩn của một biểu thức nhất định. Mỗi biểu thức đơn lẻ được xem như là một tuyên bố. Lệnh này hỗ trợ biểu thức số nguyên, chuỗi và biểu thức chính quy. Trong hướng dẫn này, chúng ta đã trình bày nhiều ví dụ về cách sử dụng lệnh expr. Hy vọng rằng thông qua bài viết này, bạn sẽ có cái nhìn rõ hơn về cách sử dụng và ứng dụng của lệnh expr trên hệ điều hành Linux.