Day02 數值運算&條件判斷
1.1 expr 整數1 運算符 整數2
計算指定的表達式,並輸出結果,註意整數和運算符間必須有空格,而且乘號必須用*轉義。很少使用,忽略。
1.2 $[整數1 運算符 整數2]
計算指定的表達式,並輸出結果。整數和運算符之間無需空格,乘號無需轉義,引用變量無需加$符號。計算結果直接替換表達式本身
必須背下來,對於取余計算來說,余數永遠不可能大於被除數。
1.3 let 變量=整數1 運算符 整數2
計算指定的表達式,引用變量無需加$符號,結果不輸出到屏幕,必須通過echo來輸出結果
1.3.1 let i++
等同於i=i+1
1.3.2 let i--
等同於i=i-1
1.3.3 let i+=3
等同於i=i+3
1.3.4 let i-=1
等同於i=i-1
1.3.5 let i*=2
等同於i=i*2
1.3.6 let i/=3
等同於i=i/3
二、小數運算
2.1 bc
直接運行bc可進入交互式界面,quit退出
scale 控制小數點位數
實戰中結合管道發送表達式,多個表達式必須用;分隔
echo "scale=2;2.2+5;5.5/3"|bc#小數點留2位,計算兩個表達式的值
2.2 小數值的比較
比較符號有>,>=,==,!=,<,<=
如果表達式成立,結果為1;表達式不成立,結果為0
echo "1>2"|bc 結果0
三、條件判斷
3.1 條件判斷的格式
[ 判斷條件 ] 常用,註意判斷條件和方括號之間的空格
test 判斷條件
3.2 字符串
3.2.1 [ 變量1 == 變量2 ]
判斷變量1是否等於變量2
3.2.2 [ 變量1 != 變量2 ]
判斷變量1是否不等於變量2
3.2.3 [ -z 變量 ]
判斷字符串的長度是否為0,即變量為空(zero)
3.2.4 [ !-z 變量 ]
相當於-n。判斷字符串的長度是否不為0,即變量非空(zero)
3.3 命令行中如何執行多條命令
3.3.1 A;B
執行A,執行B。你我沒半毛錢關系
3.3.2 A && B
執行A,僅當A成功,才執行B。有你才有我
[ $USER == ‘root’ ] && yum install -y httpd
3.3.3 A || B
執行A,僅當A失敗,才執行B。有你沒我,有我沒你
3.4 整數值
多個條件組合時,可以使用 [[ .. ]] 界定
3.4.1 [ -eq 變量 ]
equal。等於
3.4.2 [ -ne 變量 ]
not equal。不等於
3.4.3 [ -gt 變量 ]
greater than,大於
3.4.4 [ -ge 變量 ]
greater or equal。大於或等於
3.4.5 [ -lt 變量 ]
less than。小於
3.4.6 [ -le 變量 ]
less or equal。小於或等於
3.4.7 [ -le 1 -[o,a] -ge 99 ]
-o或
-a與
3.5 文件或目錄
3.5.1 [ -e 對象 ]
對象存在(Exist)為真
3.5.2 [ -f file ]
存在並且為文件(File)則為真
3.5.3 [ -d file ]
存在並且為目錄(Directory)則為真
3.5.4 [ -r file ]
文件可讀(Read)則為真
3.5.5 [ -w file ]
文件可寫(Write)則為真
3.5.6 [ -x file ]
文件可執行(eXecute)則為真
四、if條件判斷
4.1 單分支if(僅判斷正確)
if [ 判斷 ];then
命令
fi
4.2 雙分支if
if [ 判斷 ];then
正確後執行命令
else
錯誤後執行命令
fi
4.3 多分支if
if [ 判斷 ];then
正確後執行命令
elif [ 判斷 ];then
錯誤後執行命令
elif [ 判斷 ];then
錯誤後執行命令
......
else [ 判斷 ];then
錯誤後執行命令
fi
Day02 數值運算&條件判斷