1. 程式人生 > >DAY11 Shell腳本基礎(Enginner05-2)

DAY11 Shell腳本基礎(Enginner05-2)

測試表 com 錯誤輸出 redhat 舉例 相同 腳本基礎 -o 1.8

六、條件測試及選擇

6.1 測試表達式

-file狀態測試

6.1.1 [ -e file ]

file存在,值為true;file不存在為false

6.1.2 [ -d file ]

file存在並且為目錄,值為true;file不存在為false

6.1.3 [ -f file ]

file存在並且為文件,值為true;file不存在為false

6.1.4 [ -r file ]

file有r權限,值為true;file沒有r權限,值為false

6.1.5 [ -w file ]

file有w權限,值為true;file沒有w權限,值為false

6.1.6 [ -x file ]

file有x權限,值為true;file沒有x權限,值為false

-整數大小測試

6.1.7 [ x -gt y ]

x>y

6.1.8 [ x -ge y ]

x≧y
大於等於

6.1.9 [ x -eq y ]

x=y
等於

6.1.10 [ x -ne y ]

x!=y
不等於

6.1.11 [ x -lt y]

x< y
小於

6.1.12 [ x -le y ]

x≦y
小於等於

-字符串測試

6.1.13 [ ‘x‘ == ‘y‘ ]

‘x‘與‘y‘相同
字符串測試

6.1.14 [ ‘x‘ != ‘y‘ ]

‘x‘與‘y‘不同
字符串測試

6.1.15 [ -n "string"]

判斷string是否有值,有值為true,沒有值為false

6.1.16 [ -z "string"]

判斷string是否為空,為空則為true,不為空則為false

-多重條件判定

6.1.17 -a

and 與

6.1.18 -o

or 或

6.2 if條件測試

6.2.1 if單循環

if 條件測試;then
command xx
fi

6.2.2 if雙循環

if 條件測試;then
command xx
else
command yy
fi

6.2.3 if多循環

if 條件測試;then
command xx
elif 條件測試1;then
command yy
else
command zz
fi

6.2.4 空值與沒有的區別

空值表示值為空

沒有表示不存在
"$1" == redhat #給變量加上雙引號可以將"沒有"變成"空值"
腳本舉例:

#!/bin/bash
   if [ "$1" == redhat ];then
        echo fedora
   elif [ "$1" == fedora ];then
        echo redhat
   else 
        echo ‘/root/foo.sh redhat|fedora‘ >&2 # >&2表示這個echo為錯誤輸出
fi

6.3 for循環結構

根據變量值的不同取值,重復執行相同的操作,直到變量裏沒有值以後退出循環
for 變量名 in 值列表
do
command xx
done

DAY11 Shell腳本基礎(Enginner05-2)