shell-05-数学运算-expr

一、数学运算-expr
  • 语法

    语法
    方法一expr $num1 operator $num2
    方法二 ( ( (( ((num1 operator $num2))
  • expr操作符

    操作符含义备注
    num1 | num2num1不为空且非0,返回num1;否则返回num2管道符号需要转义\
    num1 & num2num1不为空且非0,返回num1;否则返回0管道符号需要转义\
    num1 < num2num1小于num2,返回1;否则返回0管道符号需要转义\
    num1 <= num2num1小于等于num2,返回1;否则返回0管道符号需要转义\
    num1 = num2num1等于num2,返回1;否则返回0
    num1 != num2num1不等于num2,返回1;否则返回0
    num1 > num2num1大于num2,返回1;否则返回0管道符号需要转义\
    num1 >= num2num1大于等于num2,返回1;否则返回0管道符号需要转义\
    num1 + num2求和
    num1 - num2求差
    num1 * num2求积管道符号需要转义\
    num1 / num2求商
    num1 % num2求余

    举例:

    # 只能用于整形的比较
    num1=30
    num2=50
    expr $num1 \> $num2
    
    # 求积
    expr $num1 \* $num2
    
    # $(()) 需要赋值给一个变量, 其次不能使用=或者!= 推荐使用expr
    num3=$(($num1 * $num2))
    
    # 判断一个变量是一个整数
    expr $num1 + 1
    
    # 提示用户输入一个正整数num,然后计算1+2+3+...+sum的值;必须对num是否为正整数做判读,不符合应当允许再次输入
    # 对应脚本
    # !/bin/bash
    #
    while true
    do
    	read -p "pls input a positive number:" num
    	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+3+....+$num = $sum"
            exit
    		fi
    	fi
      echo "error,input enlegal"
      continue
    done  
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值