加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Shell 使用 expr 进行数学运算

发布时间:2020-12-15 22:53:01 所属栏目:安全 来源:网络整理
导读:1、语法格式: 第一种: expr $num1 operator $num2 第二种: $(($num1 operator $num2)) 2、expr 操作符: ? 注意:这里比较为true,返回 1。只支持整数。 3、实际使用,比较时必须有空格 在实际使用过程中,类似于“|” 这样的管道符号要进行转义,如下:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读