您的位置:首页 > 运维架构 > Shell

Shell笔记1-bash数学运算

2020-08-29 10:48 1116 查看

bash数学运算

1.expr $num1 operator $num2

~$ num1=2
~$ num2=4
~$ expr $num1 > num2
~$ expr $num1 \> num2
0
~$ expr $num1 + $num2
6
~$ expr $num1 \* $num2
8
~$ expr $num1 % $num2
2
~$ expr $num1 = $num2
0
~$ expr $num1 != $num2
1
~$ expr $num1 >= $num2
expr: syntax error
~$ expr $num1 \>= $num2
0
~$ expr $num1 \<= $num2
1
~$ expr $num1 \| $num2
2
~$ expr $num1 \& $num2
2
➜  shell

2.((((((num1 operator $num2))

~$ echo $((num1+num2))
24
~$ num1=2
~$ echo $((num1+num2))
6
~$ echo $((num1-num2))
-2
~$ echo $((num1*num2))
8
~$ echo $((num1>num2))
0
~$ echo $((num1<num2))
1
#不准
~$ echo $((num1&num2))
0
#不准
~$ echo $((num1|num2))
6
~$ echo $((num1%num2))
2
#不准
~$ echo $((num1=num2))
4

**总结:**建议大家使用expr,因为其精准性比较高

练习

**需求描述:**提示用户输入一个正整数num,然后计算1+2+3+…+sum的值;必须对num是否为正整数做判断,不符合应当允许再次输入

#!/bin/bash
#

while true
do
read -p "pls input a positive number:" num

#判断变量是否为正整数
#进行运算并将结果丢到垃圾桶里
expr $num + 1 &> /dev/null
#$?判断是否能够进行数学运算
#可以$?!=0
#不可以$?=0
if [ $? -eq 0 ];then
if [ `expr $num \> 0` -eq 1 ];then
sum=0
for((i=1;i<=$num;i++))
do
sum=`expr $sum + $i`
done
echo "1+2+3+...+$num = $sum"
exit
else
echo "error,input unlegal"
exit
fi
fi
echo "input,echo enlegal"

done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: