一、 命令之間的邏輯關係:
邏輯與:&&,前一個表達式爲假,結果爲假;第二段不用再做判斷,即第二段不再運行。前一個表達式爲真,接着運行下一個表達式,如果下一個表達式也爲真,則結果爲真。
總結:兩個表達式運行與運算,兩個表達式爲真,則結果爲真;否則爲假。
邏輯或:||,前一個表達式爲真,結果爲真,第二段不再做判斷。第一個表達式爲假,則運行下一個表達式,第二個表達式爲假,結果爲假,第二個表達式爲真,結果爲真。
總結:兩個表達式運行或運算,有一個表達式爲真,則結果爲真;兩個表達式都爲假,則結果爲假。
例題:
[ $FINLINES -gt 100 ] && echo "/etc/inittab is a big file." || echo "/etc/inittab is a small file"
---------1----------- ---------------2---------------- -------------3-------------------
說明:1爲真時,會執行2;1和2相與的結果是真,後面是或操作,即第3段不再執行
1爲假時,後面是與操作,不執行第2段,1和2相與結果是假,後面是或,執行第3段
二、 算術運算
shell中如何進行算術運算:shell本身把所有的變量都看成字符。如果要進行算術運算,需要進行額外處理。 乘法符號,使用*,有時可能需要轉義。
所有下面這些結果,可以使用echo $C 來查看變量C的結果。
1. let 算術運算表達式
A=3
B=6
let C=$A+$B # let做算術運算,加減乘除
2. $[算術運算表達式]
C=$[$A+$B]
3. $((算術運算表達式))
C=$(($A+$B))
4. expr 算術運算表達式,表達式中各操作數及運算符之間要有空格,而且要使用命令引用
C=`expr $A + $B `
D=$(expr $A + $B) # 在這裏,運算符的兩邊要有空格。