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"