說明:該篇主要是'算數運算命令''(())'的用法
強調:'方法很多,精通一種即可,能看懂其他的即可'
一 算數運算符
二 算數運算命令
三 實戰
(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變量讀取外部的參數