linux shell 加、减、乘、除

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

+:对两个变量做加法。

-:对两个变量做减法。

*:对两个变量做乘法。

/:对两个变量做除法。

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

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

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

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

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

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

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

在使用这些运算符时,需要注意到运算顺序的问题。例如输入下面的命令,输出1+2的结果。

echo 1+2

Shell并没有输出结果3,而是输出了1+2。在shell中有三种方法可以更改运算顺序。

1.用expr改变运算顺序。可以用echo `expr 1 +2`来输出1+2的结果,用expr表示后面的表达式为一个数学运算。需要注意的是,`并不是一个单引号,而是“Tab”键上面的那个符号。

2.用let指示数学运算。可以先将运算的结果赋值给变量b,运算命令是b=let 1 + 2。然后用echo$b来输出b的值。如果没有let,则会输出1+2。

3.用$[]表示数学运算。将一个数学运算写到$[]符号的中括号中,中括号中的内容将先进行数学运算。例如命令echo$[1+2],将输出结果3。

下面是一个shell程序实例,实现数学函数S=3(xy)+4x2+5y+6的运算。在程序中以位置变量的方式输入x与y的值。程序的编写步骤如下所示。

#!/bin/bash
#4.4.sh
s=0             #定义一个求和变量,初值为0。
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))    #取余

输入下面的命令运行程序。在命令中需要输入两个参数。

./4.4.sh 2 4

 程序会完成S=3(xy)+4x2+5y+6的数学运算并输出结果,结果如下所示。

90

 

相关文章

在Linux系统中,设置ARP防火墙可以通过多种方法实现,包括使...
在Linux环境下,使用Jack2进行编译时,可以采取以下策略来提...
`getid`命令在Linux系统中用于获取当前进程的有效用户ID(EU...
在Linux环境下,codesign工具用于对代码进行签名,以确保其完...
Linux中的`tr`命令,其英文全称是“transform”,即转换的意...
Linux中的ARP防火墙是一种用于防止ARP欺骗攻击的安全措施,它...