一 if語句的格式
if 條件
then
執(zhí)行語句
fi
注意,最后必須用fi來閉合。無需使用{ }來包裹。
if then有兩種寫法,同一行時(shí),必須有分號(hào)。獨(dú)占一行時(shí)不用分號(hào)
如:
同一行
if [[ $a > $b ]] ; then
echo "111"
else
echo "00"
fi
獨(dú)占一行
if [[ $a > $b ]]
then
echo "111"
else
echo "00"
fi
二 if的各種括號(hào)的寫法
1、數(shù)值的比較
-eq 等于,如:if [ "$cc" -eq "$dd" ]
-ne 不等于,如:if [ "$cc" -ne "$dd" ]
-gt 大于,如:if [ "$cc" -gt "$dd" ]
-ge 大于等于,如:if [ "$cc" -ge "$dd" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$cc" -le "$dd" ]
使用符號(hào)是,用雙括號(hào) 如:(("$cc" > "$dd"))
如:(("$a" >= "$b"))
2、字符串的比較
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],與=等價(jià)
!= 不等于,如:if [ "$a" != "$b" ]
這個(gè)操作符將在[[]]結(jié)構(gòu)中使用模式匹配.
大于,在ASCII字母順序下.如:
if [[ "$a" > "$b" ]] 雙括號(hào)無需轉(zhuǎn)義
if [ "$a" > "$b" ] 單括號(hào)要轉(zhuǎn)義
注意:在單括號(hào)[]結(jié)構(gòu)中">",< 等需要轉(zhuǎn)義.
=和==是等價(jià)的,這個(gè)比較奇怪
以下語句是等價(jià)的,其中-a表示 and
if [ $cc -ne 1 -a $cc != 2 ]
if [ $cc -ne 1] && [ $cc != 2 ]
if [[ $cc != 1 && $cc != 2 ]]
通過以上可以看出,使用雙括號(hào)時(shí),最簡單直觀
上述的if的后面,括號(hào)里面的表達(dá)式都要有空格
單括號(hào)時(shí),字符串的比較使用 = == !=
單括號(hào)時(shí),數(shù)值的比較使用 -eq -ne -gt -ge -lt -le
雙括號(hào)與雙中括號(hào)的區(qū)別:
((表達(dá)式))常用于算術(shù)運(yùn)算比較,雙括號(hào)中的變量可以不使用$符號(hào)前綴
如:
while ((aa<100)) #數(shù)值與運(yùn)算符可以沒有空格,變量的使用時(shí)也可以不使用$aa
do
echo "$aa"
((aa=aa*2))
done