shell中if判斷語句
阿新 • • 發佈:2017-10-13
file true pan rep then 好的 test 遇到 col
if 條件測試類型: 文件測試, 數字測試, 字符串測試
if 語句結構:
-
if ... ; then ....; fi
-
if ... ; then ... ; else ... ; fi
條件測試表達式:
- [ 表達式 ]
- [[ 表達式 ]]
- test 表達式
數字測試: Note
- 只能進行整數測試
- if test 3 -eq $V2 等價於 if [ 3 -eq $V2 ]
【 3 -eq $V2 】等於
【 3 -ne $V2 】不等
【 3 -lt $V2 】小於
-le 小於等於 -gt 大於 -ge 大於等於
字符串測試:Note
- 當要進行小數比較時,不能使用數字測試的方法,使用字符串測試
- shell中的字符串比較只有=,沒有==
- 字符串測試時做最好使用“”將字符串引起來
[[ $V = 4* ]] 模式匹配 若$V以4開頭為true
[[ $V = "4*" ]] 字符匹配 若$V等於4* 為true
[ -z "$V" ] -z表示字符串為空
[ -n "$V" ] -n表示字符串不為空
文件測試:
-e FILE 測試文件是否存在
-f FILE 測試文件是否為普通文件
-d FILE 測試指定路徑是否為目錄
。。。
寫case遇到的好的解決方法:
- 判斷nfs版本
for V in ...
lockp=lockd
[[ $V = 4* ]] && lockp=nfsd
ssh $SERVER $lsLocks | grep $lockp
done
1.將鎖封裝起來,後面使用ssh執行命令 2.使用簡化的if判斷
- 判斷kernel版本
shell中if判斷語句