系統(tǒng)運維
一、 命令之間的邏輯關(guān)系:
邏輯與:&&,前一個表達式為假,結(jié)果為假;第二段不用再做判斷,即第二段不再運行。前一個表達式為真,接著運行下一個表達式,如果下一個表達式也為真,則結(jié)果為真。? ?
總結(jié):兩個表達式運行與運算,兩個表達式為真,則結(jié)果為真;否則為假。? ?
邏輯或:||,前一個表達式為真,結(jié)果為真,第二段不再做判斷。第一個表達式為假,則運行下一個表達式,第二個表達式為假,結(jié)果為假,第二個表達式為真,結(jié)果為真。
總結(jié):兩個表達式運行或運算,有一個表達式為真,則結(jié)果為真;兩個表達式都為假,則結(jié)果為假。
? ?例題:
[ $finlines -gt 100 ] && echo /etc/inittab is a big file.? ||? ? ?echo /etc/inittab is a small file
———1———–? ? ? ? ? ?—————2—————-? ? ? ? ? ? ————-3——————-
說明:1為真時,會執(zhí)行2;1和2相與的結(jié)果是真,后面是或操作,即第3段不再執(zhí)行
? ? ? ? ? ?1為假時,后面是與操作,不執(zhí)行第2段,1和2相與結(jié)果是假,后面是或,執(zhí)行第3段
二、 算術(shù)運算
shell中如何進行算術(shù)運算:shell本身把所有的變量都看成字符。如果要進行算術(shù)運算,需要進行額外處理。 乘法符號,使用*,有時可能需要轉(zhuǎn)義。
所有下面這些結(jié)果,可以使用echo $c? 來查看變量c的結(jié)果。
1.? ?let 算術(shù)運算表達式
a=3
b=6
let? ?c=$a $b? ? ?#? let做算術(shù)運算,加減乘除
2. $[算術(shù)運算表達式]
? ? ?c=$[$a $b]
3. $((算術(shù)運算表達式))
? ? c=$(($a $b))
4. expr? 算術(shù)運算表達式,表達式中各操作數(shù)及運算符之間要有空格,而且要使用命令引用?
? ? c=`expr? $a $b `
? ? d=$(expr $a $b)? ?# 在這里,運算符的兩邊要有空格。