zoukankan      html  css  js  c++  java
  • Shell 使用 expr 进行数学运算

    1、语法格式:

      第一种:expr $num1 operator $num2

      第二种:$(($num1 operator $num2))

    2、expr 操作符:

    注意:这里比较为true,返回 1。只支持整数。

    3、实际使用,比较时必须有空格

    在实际使用过程中,类似于“|” 这样的管道符号要进行转义,如下:

      num1=100

      num2=200  

      expr $num1 | $num2 

      expr $num1 & $num2

      expr $num1 < $num2

      expr $num1 <= $num2

      expr $num1 > $num2

      expr $num1 >= $num2

      expr $num1 = $num2

      expr $num1 != $num2

        expr $num1 + $num2

      expr $num1 - $num2

      expr $num1 * $num2

      expr $num1 / $num2

      expr $num1 % $num2

    4、举例

      $ num1=30

      $ num2=50

      $ expr $num1 | $num2

      打印出:30

      

      $ expr $num1 + $num2

      打印出:80

      $ num3=`expr $num1 * $num2`     // 命令替换的形式

      $ echo $num3 

      打印出:1500

      

      对于 $(()) 这种操作,需要赋给一个值,并且里面的符号不用转义。  expr 会直接当成一个命令进行操作

      $ num3=$(($num1*$num2))     

      $ echo $num3 

      打印出:1500

      注意:$(()) 进行运算只能进行 加、减、乘、除、求余 运算。

    5、大练习

      提示用户输入一个正整数,然后计算 1+2+3+...+num 的值,并打印。 必须对num进行正整数判断,不符合要求,则给出提示,然后重新输入。

    #!/bin/bash
    
    #计算 1+2+3+...+num 的和,并且num 必须是正整数
    
    while true
    do
        read -p "请输入一个正整数:" num
    
        # 判断是不是整数,如果不是整数,num + 1 运算会报错,$? 返回值就为2
        expr $num + 1 &> /dev/null
    
        if [ $? -eq 0 ]; then
            if [ `expr $num > 0` -eq 1 ]; then
                for((i=1; i<=$num; i++))
                do
                    sum=`expr $sum + $i`
                done
                echo "1+2+...+$num = $sum"
                exit
            fi
            echo "输入的参数不是正整数"
        else
            echo "输入的参数不是一个整数"
        fi
        continue
    done

      

  • 相关阅读:
    洛谷P1002 过河卒
    XAF 接口和BOModel<DC翻译博客四>
    XAF DC中的关联<DC翻译博客三>
    XAF 组合关联<DC翻译博客十一>
    XAF 转换不同应用程序模型
    XAF How to: Implement Domain Components(如何实现领域构件)
    XAF 对基库的思考<DC翻译博客五>
    XAF–The State of Domain Components Technology in V2010 Vol 2
    Xpand Easy Sequential numbers(易用的序列号)
    XAF 如何实现批量更改多列多行单元格的值
  • 原文地址:https://www.cnblogs.com/shenqidu/p/10590422.html
Copyright © 2011-2022 走看看