语法
方法一:expr $num1 operator $num2
方法二:$(($num1 operator $num2))
操作符号
示例
需要使用转义符,因为很多符合都在Unix有意义
num1=20
num2=100
expr $num1 \| $num2 # 20
expr $num1 \> $num2 # 0
expr $num1 \< $num2 # 1
expr $num1 + $num2 # 120
expr $num1 != $num2 # 1
expr $num1 = $num2 # 0
expr $num1 \* $num2 # 2000
# 方法二 $(())方法 不需要转义符
num3=$(($num1+$num2))
echo $num3 # 120
num3=$(($num1%$num2))
echo $num3 # 20
# = != 会出现报错,建议使用expr方法
练习
输入一个正整数
计算从1到n的求和
#!/bin/bash
#
while true
do
read -p "请输入正整数:" num
expr $num + 1 &> /dev/null
if [ $? -eq 0 ]; then
if [ `expr $num \> 0` -eq 1 ];then
#echo "$num 是正整数"
sum=0
for((i=1;i<=$num;i++))
do
sum=`expr $sum + $i`
done
echo "1+...+$num = $sum"
exit
fi
fi
echo "错误,不是正整数"
continue
done