1. 程式人生 > >shell中if判斷語句

shell中if判斷語句

file true pan rep then 好的 test 遇到 col

if 條件測試類型: 文件測試, 數字測試, 字符串測試

if 語句結構:

  • if ... ; then ....; fi
  • if ... ; then ... ; else ... ; fi

條件測試表達式:

  • [ 表達式 ]
  • [[ 表達式 ]]
  • test 表達式

數字測試: Note

  1. 只能進行整數測試
  2. if test 3 -eq $V2 等價於 if [ 3 -eq $V2 ]

【 3 -eq $V2 】等於

【 3 -ne $V2 】不等

【 3 -lt $V2 】小於

-le 小於等於 -gt 大於 -ge 大於等於

字符串測試:Note

  1. 當要進行小數比較時,不能使用數字測試的方法,使用字符串測試
  2. shell中的字符串比較只有=,沒有==
  3. 字符串測試時做最好使用“”將字符串引起來

[[ $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判斷語句