shell計算(一)

說明:該篇主要是'算數運算命令''(())'的用法

強調:'方法很多,精通一種即可,能看懂其他的即可'

一    算數運算符

二     算數運算命令

三    實戰

(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變量讀取外部的參數

set -u 用法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章