设为首页 加入收藏

TOP

4.6.2 算术运算符
2013-10-12 09:15:22 来源: 作者: 【 】 浏览:131
Tags:4.6.2 算术 运算

4.6.2  算术运算符

算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。shell中常用的数学运算符如下所示。

+:对两个变量做加法。

-:对两个变量做减法。

*:对两个变量做乘法。

/:对两个变量做除法。

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

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

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

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

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

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

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

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

  1. echo 1+2 

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

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

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

注意:在"let b=1+2"中,加号的前后不能有空格。在`expr 1 + 2`表达式中,加号前后都需要有空格。

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

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

【范例4-3】用shell脚本进行数学运算实例,实例代码如下所示。

实例代码4-3

  1. 01  #!/bin/bash  
  2. 02  #4.3.sh  
  3. 03  s=0                                 #定义一个求和变量,初值为0。  
  4. 04  t=`expr $1**$2`                     #用expr改变运算顺序,求x的y次方。  
  5. 05  t=$[t*3]                                #t乘以3。  
  6. 06  s=$[s+t]                                #结果相加。  
  7. 07  t=$[$1**2]                          #求x的平方。  
  8. 08  t=$[t*4]                                #结果乘以4。  
  9. 09  s=$[s+t]                                #结果相加。  
  10. 10  t=`expr $2*5`                           #求5y的值。  
  11. 11  s=$[s+t]                                #结果相加。  
  12. 12  s=$[s+6]                                #结果加上6。  
  13. 13  echo $s                             #输出结果。  

【运行结果】在终端中,输入下面的命令为4.3.sh文件添加可执行权限。
  1. chmod +x 4.3.sh 

输入下面的命令运行程序。在命令中需要输入两个参数。
  1. ./4.3.sh 2 4 

结果如下所示。
  1. 90 

【代码解析】

代码第04~10行代码首先调用expr指令计算表达式的值,然后使用命令替换将运算结果赋值给相应的变量。其他代码则使用方括号的方式完成表达式的计算和赋值。

程序实际完成S=3(xy)+4x2+5y+6的数学表达式运算并输出结果。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.1.4 使用命令的历史记录 下一篇4.1.3 命令通配符

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: