文章目录
一、数学运算-expr
-
语法
语法 方法一 expr $num1 operator $num2 方法二 ( ( (( ((num1 operator $num2)) -
expr操作符
操作符 含义 备注 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 管道符号需要转义\ 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