zoukankan      html  css  js  c++  java
  • linux下的shell运算(加、减、乘、除)

     linux下的shell运算(加、减、乘、除)
    标签: linuxshell运算加减乘除
    2014-03-12 16:25 15127人阅读 评论(0) 收藏 举报
     分类: linux(17)  
    ((i=$j+$k))    等价于 i=`expr $j + $k`
    ((i=$j-$k))     等价于   i=`expr $j -$k`
    ((i=$j*$k))     等价于   i=`expr $j *$k`
    ((i=$j/$k))     等价于   i=`expr $j /$k`
    
    
    Let expressions 执行一个或多个表达式。表达式中的变量前不必有$.如果表达式中包含了空格或其他特殊字符,则必须引起来。
    
    例:let “I = I + 1” 或 let i=i+1
    
     
    
    算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。Shell中常用的数学运算符如下所示。
    
    — +:对两个变量做加法。
    
    — -:对两个变量做减法。
    
    — *:对两个变量做乘法。
    
    — /:对两个变量做除法。
    
    — **:对两个变量做幂运算。
    
    — %:取模运算,第一个变量除以第二个变量求余数。
    
    — +=:加等于,在自身基础上加第二个变量。
    
    — -=:减等于,在第一个变量的基础上减去第二个变量。
    
    — *=:乘等于,在第一个变量的基础上乘以第二个变量。
    
    — /=:除等于,在第一个变量的基础上除以第二个变量。
    
    — %=:取模赋值,第一个变量对第二个变量取模运算,再赋值给第一个变量。
    
    在使用这些运算符时,需要注意到运算顺序的问题。例如输入下面的命令,输出1+2的结果。
    
    echo 1+2
    
    Shell并没有输出结果3,而是输出了1+2。在shell中有三种方法可以更改运算顺序。
    
    — 用expr改变运算顺序。可以用echo `expr 1 +2`来输出1+2的结果,用expr表示后面的表达式为一个数学运算。需要注意的是,`并不是一个单引号,而是“Tab”键上面的那个符号。
    
    — 用let指示数学运算。可以先将运算的结果赋值给变量b,运算命令是b=let 1 + 2。然后用echo$b来输出b的值。如果没有let,则会输出1+2。
    
    — 用$[]表示数学运算。将一个数学运算写到$[]符号的中括号中,中括号中的内容将先进行数学运算。例如命令echo$[1+2],将输出结果3。
    
    下面是一个shell程序实例,实现数学函数S=3(xy)+4x2+5y+6的运算。在程序中以位置变量的方式输入x与y的值。程序的编写步骤如下所示。
    
     在主菜单中打开一个终端。在终端中输入“vim”命令打开VIM。
    
     在VIM中按“i”键进入插入模式,然后输入下面的代码。
    
    代码4-2  数学运算实例:源文件44.4.sh
    
    #!/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))                          #取余
    
     在这个程序中,需要注意算术运算的写法。如果没有expr或$[]更改运算顺序,则会将运算式以字符串的形式赋值,而不会赋值运算结果。
    
     按“Esc”键返回到普通模式。然后输入“:w 4.4.sh”保存文件。
    
     输入“:q”命令,按“Enter”键退出VIM。
    
     在终端中,输入下面的命令对4.4.sh文件添加可执行权限。
    
    chmod +x 4.4.sh
    
     输入下面的命令运行程序。在命令中需要输入两个参数。
    
    ./4.4.sh 2 4
    
     程序会完成S=3(xy)+4x2+5y+6的数学运算并输出结果,结果如下所示。
    
    90
    
     
    

      

  • 相关阅读:
    time 模块学习
    day 14 自定义模块,常用模块 time .datetime ,time 模块
    day 13 课后作业
    day 12 课后作业
    day 11课后作业
    树状数组最值
    hdu 1059 Dividing bitset 多重背包
    XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship
    最长公共子序列板/滚动 N^2
    Uva 10635
  • 原文地址:https://www.cnblogs.com/archoncap/p/6066650.html
Copyright © 2011-2022 走看看