Shell 運(yùn)算符類型:
算數(shù)運(yùn)算符 關(guān)系運(yùn)算符 布爾運(yùn)算符 字符串運(yùn)算符 文件測(cè)試運(yùn)算符
原生bash不支持簡(jiǎn)單的數(shù)學(xué)運(yùn)算灌诅,單是可以通過其他命令來實(shí)現(xiàn)龄糊,例如awk和expr,expr最常用煮岁。
expr是一款表達(dá)式計(jì)算工具日丹,使用它能完成表達(dá)式的求值操作剿另。
val=`expr 2 + 2`
表達(dá)式和運(yùn)算符之間要有空格刁赖,例如2+2是不對(duì)的壳炎,必須寫成2+2,這與我們熟悉的大多數(shù)編程語(yǔ)言不一樣泞歉。
完整的表達(dá)式要被``包含,注意這個(gè)字符不是單引號(hào)匿辩,在Esc鍵下邊腰耙。
算術(shù)運(yùn)算符
+、-铲球、*挺庞、/、%睬辐、=挠阁、==、溯饵!=侵俗、
注意:條件表達(dá)式要放在方括號(hào)之間,并且要有空格丰刊,例如:[$a==$b]是錯(cuò)誤的隘谣,必須寫成[ $a == $b ]。
執(zhí)行結(jié)果:
在MAC中Shell的expr語(yǔ)法是:$((表達(dá)式)),此處表達(dá)式中的"*"不需要轉(zhuǎn)移符號(hào)"\"
關(guān)系運(yùn)算符:
關(guān)系運(yùn)算符只支持?jǐn)?shù)字寻歧,不支持字符串掌栅,除非字符串的值是數(shù)字
-eq、-ne(不相等)码泛、-gt猾封、-lt、-ge(大于等于)噪珊、-le(小于等于)
布爾運(yùn)算符:
晌缘!、-o(or)痢站、-a(and)
字符串運(yùn)算符:
=磷箕、!=阵难、-z(字符串長(zhǎng)度是否為0,為0返回真)岳枷、-n(字符串是否為0,不為0返回真)、str