1.2.7 算术运算
Shell中常用的算术运算方法有使用let命令、使用expr命令、使用bc命令、使用运算语法$[算术表达式]、使用运算语法$((算术表达式))等几种。
在Shell中可以使用各种运算符来执行运算,这些运算符主要有以下几类。
(1)算术运算符:包括+(加)、-(减)、*(乘)、/(除)和%(取余)等。
(2)关系运算符:用于比较两个数的大小,包括-eq(等于)、-ne(不等于)、-gt(大于)、-lt(小于)、-ge(大于或等于)和-le(小于或等于)等。
V1-7 算术运算
(3)逻辑运算符:用于比较两个布尔值的真假,包括&&(逻辑与)、||(逻辑或)和!(逻辑非)等。
(4)字符串运算符:用于比较两个字符串的大小,包括=(等于)、!=(不等于)和-z(是否为空字符串)等。
(5)文件测试运算符:用于检查和判断文件的属性及状态,包括-e(文件是否存在)、-r(文件是否可读)、-w(文件是否可写)和-x(文件是否可执行)等。
1. 算术运算符
默认情况下,如果不特别指明,则Shell不直接进行算术运算,而是把算术运算符解释为字符串连接符,相当于两个字符串拼接在一起,形成一个新的字符串。
Shell支持的常见的算术运算符如表1-10所示。
表1-10 Shell支持的常见的算术运算符
算术运算符的优先级遵循算术运算的优先级,即先乘除,再加减。如果需要改变优先级,则可以使用圆括号进行标识。
在算术运算中,圆括号用于指定运算的顺序,并在进行算术运算时被视为操作符。例如:
echo $(( (2 + 3) * 4 )) 20
2. 其他运算方法
bc是一个Shell命令,用于执行高精度算术运算。它是一种解释型命令,可以直接在命令行中输入算术表达式并计算结果。
bc支持很多算术运算,包括加、减、乘、除、取余、幂运算、位运算等。它还支持函数,包括数学函数(如sine、cosine和sqrt)、字符串函数(如length和index)等。
下面是一些使用bc命令的示例。
# 计算 $2^8$ 的值 $ echo "2^8" | bc 256 # 计算 $1 + 2 * 3 - 4 / 5$ 的值 echo "1 + 2 * 3 - 5 / 5" | bc 6
let是一个Shell命令,用于执行算术运算。它允许在命令行中直接输入表达式,并将结果存储在变量中。
下面是一些使用let命令的示例。
# 计算2 + 3的值并将结果存储在变量x中 let x=2+3 echo $x 5 # 计算4 - 1的值并将结果存储在变量y中 let y=4-1 echo $y 3
expr是一个Shell命令,用于执行算术运算、文本比较和模式匹配。它是一个简单的解释型命令,可以在命令行中输入表达式并计算输出结果。
下面是一些使用expr命令的示例。
# 计算2 + 3的值 expr 2 + 3 5 # 计算4 - 1的值 expr 4 - 1 3