Shell bash数学运算

Bash数学运算之expr
方法一:expr $num1 operator $num2
方法二:$(($num1 operator $num2))

    num1 | num2        num1不为空且非0,返回num1;否则返回num2
    num1 & num2        num1不为空且非0,返回num1;否则返回0
    num1 < num2        num1小于num2,返回1;否则返回0
    num1 <= num2    num1小于等于num2,返回1;否则返回0
    num1 >  num2    num1大于等于num2,返回1;否则返回0
    num1 >= num2    num1大于等于num2,返回1;否则返回0
    num1 = num2        num1等于num2,返回1;否则返回0
    num1 != num2    num1不等于num2,返回1;否则返回0


    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
    
需求描述:
提示用户输入一个正整数num,然后计算1+2+3+...+num的值;必须对num是否为正整数进行判断,不符合应当允许再次输入。
#!/bin/sh
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

bc操作符对照表:
num1+num2    求和
num1-num2    求查
num1*num2    求积
num1/num2    求商
num1%num2    求余
num1^num2    指数运算

#!/bin/sh
read -p "num1: " num1
read -p "num2: " num2

num3=`echo "scale=4;$num1/$num2" |bc`

echo "$num1/$num2 = $num3"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值