expr
是 Linux 系统中一个强大的命令行工具,主要用于执行算术运算和字符串操作。它可以用来进行基本的数学运算、字符串长度计算以及比较等操作。通过 expr
命令,你可以方便地在脚本或交互式 shell 中完成一些简单的计算任务。
expr
可以执行加减乘除等基本算术运算。它通常用于需要进行简单数学计算的场景中。
echo $(expr 10 + 5) # 输出:15
在上述例子中,expr 10 + 5
执行了两个数的加法操作,并将结果输出。括号 $(...)
用于将命令的输出作为参数传递给 echo
。
除了算术运算外,expr
还可以用来获取字符串的长度。
string="Hello, World!"
length=$(expr length "$string")
echo $length # 输出:13
在该示例中,expr length "Hello, World!"
计算了给定字符串的长度,并将结果存储在变量 length
中。
expr
还支持比较运算符来判断两个数值或表达式的大小关系。常用的比较运算符包括 -lt
(小于)、-le
(小于等于)、-eq
(等于)、-ne
(不等于)、-ge
(大于等于)和 -gt
(大于)。
a=10
b=20
if expr $a -lt $b; then
echo "a is less than b"
else
echo "a is not less than b"
fi # 输出:a is less than b
此示例中,expr $a -lt $b
判断 a
是否小于 b
。如果条件成立,则输出相应的消息。
虽然不是直接的算术或比较运算,但 expr
也可以用于进行基本的字符串处理操作,如提取特定部分。
str="user@hostname"
user=$(expr match "$str" '\(.*\)@')
echo $user # 输出:user
在这里,expr match "user@hostname" '\(.*\)@'
使用正则表达式匹配 user
部分,并将其提取出来。
下面是一个综合了上述功能的复杂示例:
# 定义变量
num1=20
num2=15
# 计算两个数之和
sum=$(expr $num1 + $num2)
echo "Sum: $sum" # 输出:Sum: 35
# 获取字符串长度
str="expr is useful"
length=$(expr length "$str")
echo "Length of string: $length" # 输出:Length of string: 14
# 比较两个数
if expr $num1 -gt $num2; then
echo "$num1 is greater than $num2"
else
echo "$num1 is not greater than $num2"
fi # 输出:num1 is greater than num2
通过这些例子,我们可以看到 expr
命令在实际应用场景中的灵活性和实用性。它不仅适用于简单的算术计算,还能帮助你完成一些基本的字符串处理任务。