shell脚本算术运算符使用详解

时间:2025-05-10 07:02:02

Shell中常用的算术运算符如下所示。

+:对两个变量做加法。

 -:对两个变量做减法。

 *:对两个变量做乘法。

 /:对两个变量做除法。

**:对两个变量做幂运算。

%:取模运算,第一个变量除以第二个变量求余数。

+=:加等于,在自身基础上加第二个变量。

-=:减等于,在第一个变量的基础上减去第二个变量。

*=:乘等于,在第一个变量的基础上乘以第二个变量。

 /=:除等于,在第一个变量的基础上除以第二个变量。

%=:取模赋值,第一个变量对第二个变量取模运算,再赋值给第一个变量。

在shell的算术运算中有以下几种方法:

名称 语法 范例
算术扩展 变量=$((算术表达式)) r=$((1+2*3))
使用外部程序expr 变量=`expr 算术表达式` r=`expr 1+2*3`
使用[ ] 变量=$[算术表达式]  r=$[1+2]
使用内置命令declare declare -i 变量=算术表达式 declare -i r=1+2*3
使用内置命令let let 算术表达式 let r=1+2

注意事项:

用expr表示后面的表达式为一个数学运算。需要注意的是,`并不是一个单引号,而是“Tab”键上面的那个符号,表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2。

用let表示后面的表达式为一个数学运算。表达式中的变量前不必有$.如果表达式中包含了空格或其他特殊字符,则必须引起来。

例:let “I = I + 1” 或 let i=i+1

用let表示后面的表达式为一个数学运算。表达式中的变量前不必有$.如果表达式中包含了空格或其他特殊字符,则必须引起来。例:let “I = I + 1” 或 let i=i+1

数学运算实例:

t=`expr$1**$2`                        #用expr改变运算顺序,求x的y次方。

t=$[t*3]                               #t乘以3。

s=$[s+t]                               #结果相加。

t=$[$1**2]                             #求x的平方。

t=$[t*4]                               #结果乘以4。

s=$[s+t]                               #结果相加。

t=`expr$2*5`                          #求5y的值。

s=$[s+t]                               #结果相加。

s=$[s+6]                               #结果加上6。

echo$s                                #输出结果。

echo$((a%b))                          #取余