说明:该篇主要是'算数运算命令''(())'的用法
强调:'方法很多,精通一种即可,能看懂其他的即可'
一 算数运算符
二 算数运算命令
三 实战
(1)基础语法
(2)简单数值计算
(3)混合计算
'需求':计算1+2...+100的和
细节:'(())'里面两端可以有任何的空格,为了增强'可读性',一般'两端各留一个空格',变量和运算符有无空格也无所谓
(4)特殊运算
说明:在(())中'使用变量'可以去掉'变量前的$符号',但是加上$符号也不会出错,但是'输出计算结果时必须加上$'
(5)比较和判断
#!/bin/bash
if (( 3>2 && 8==8 ));then
echo "Hello Java"
fi
说明两点
(1)大小比较的结果--->从'自己理解角度'(boolean,恰恰与实际相反)-->'1表示真,0表示假'
(2)涉及的数字和变量必须是整数,因为(())'只针对整数计算的'
(5)++和--特殊运算符
备注:'从左到右执行,碰到符号则计算'
(6)小脚本计算加减乘除
#!/bin/bash
# (1)脚本传参进行赋值
a=$1
b=$2
# (2)计算
echo "a+b=$(( a+b ))"
echo "a-b=$(( a-b ))"
echo "a*b=$(( a*b ))"
echo "a/b=$(( a/b ))"
echo "a%b=$(( a%b ))"
echo "a**b=$(( a**b ))"
(7)增强上面案例的健壮性
#!/bin/bash
set -u
# (1)不符合要求,打印提示信息
print_usage(){
# 非整数
printf "Please enter an interger\n"
# 退出
exit 1
}
# (2)read接受参数,并给予提示信息
read -p "Please input first number: " firstnum
# (3)判断用户输入是否是整数(-n判断字符串否是非空)
if [ -n "`echo $firstnum| sed 's#[0-9]##g'`" ];then
# 如果是非空表示输入的不是整数,则打印提示信息,并退出
print_usage
fi
# (3)继续输入运算符
read -p "Please input the operations: " operations
if [ "${operations}" != "+" ] && [ "${operations}" != "-" ] && [ "${operations}" != "*" ] && [ "${operations}" != "/" ];then
echo "Please use one of {+|-|*|/} "
exit 2
fi
# (4)判断用户输入是否是整数
read -p "Please input secondnumber: " secondnum
if [ -n "`echo $secondnum| sed 's#[0-9]##g'`" ];then
# 如果是非空表示输入的不是整数,则打印提示信息,并退出
print_usage
fi
# (5)最终的计算
echo ""${firstnum}${operations}${secondnum}=$(( firstnum ${operations} secondnum))
报错提示
这种方式'报错',印证了一点'只有数字变量可以不加$'
echo ""${firstnum}${operations}${secondnum}=$(( firstnum operations secondnum))
掌握知识
(1) 判断用户输入是否是整数
(2) read变量读取外部的参数