DAY11 Shell腳本基礎(Enginner05-2)
阿新 • • 發佈:2018-02-05
測試表 com 錯誤輸出 redhat 舉例 相同 腳本基礎 -o 1.8 六、條件測試及選擇
-整數大小測試
沒有表示不存在
"$1" == redhat #給變量加上雙引號可以將"沒有"變成"空值"
腳本舉例:
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)