使用 linux 系統這麼長時間,對 shell 指令碼也算是比較熟悉。其實不管是搞開發,還是搞運維,shell 指令碼都是必備的基本技能。這次抽時間好好總結一下 shell 方面的知識,綜合的再學習一下,記錄。這篇文章總結的是 shell 指令碼的 if 語句的使用。
if [ 條件判斷 ]; then... ...
elif [ 條件判斷 ]; then
... ...
else
... ...
fi
[ -e file] 判斷檔案是否存在
[ -f file
] 判斷檔案是否是普通檔案
[ -d file
] 判斷檔案是否是目錄檔案
[ -b file
] 判斷檔案是否塊裝置檔案
[ -c file
] 判斷檔案是否字元裝置檔案
[ -s file ] 判斷檔案是否是非空檔案
[ -r file] 判斷檔案是否可讀
[ -w
file
] 判斷檔案是否可寫
[ -x file ] 判斷檔案是否可執行
關於針對數字的判斷,首先定義a=10, b=8
[root@vip ~]# a=10 b=8
[ $a-eq$b ] 判斷 a 是否等於 b[ $a-ne$b ] 判斷 a 是否不等 b
[ $a-gt$b ] 判斷 a 是否大於 b
[ $a-ge$b ] 判斷 a 是否大等 b
[ $a-lt$b ] 判斷 a 是否小於 b
[ $a-le$b ] 判斷 a 是否小等 b
關於針對字串的判斷比較,首先定義 str1=abc, str2=abd
[root@vip ~]# str1=abc; str2=abd[-zstr ] 判斷 str 是否長度為0
[-nstr ] 判斷 str 是否長度不為0
[ str1==str2 ] 判斷 str1 與 str2 是否相等
[ str1!=str2 ] 判斷 str1 與 str2 是否不等
[ str1\>str2 ] 判斷 str1 是否大於 str2
[ str1\<str2 ] 判斷 str1 是否小於 str2
[[ str1>str2 ]] 判斷 str1 是否大於 str2
[[ str1<str2 ]] 判斷 str1 是否小於 str2
[ $a -lt $b -a $str1 == $str2 ] a 大於 b, 而且 str1 與 str2 相等 (&&)[ $a -lt $b -o $str1 == $str2 ] a 大於 b, 或者 str1 與 str2 相等 (||)
[[ $a -gt $b && $str1 == $str2 ]] a 大於 b, 而且 str1 與 str2 相等 (&&)
[[ $a -gt $b || $str1 == $str2 ]] a 大於 b, 或者 str1 與 str2 相等 (||)
[ $a -lt $b ] && [ $str1 == $str2 ] a 大於 b, 而且 str1 與 str2 相等 (&&)
[ $a -lt $b ] || [ $str1 == $str2 ] a 大於 b, 或者 str1 與 str2 相等 (||)
待更新。。。
shell指令碼的條件判斷語句
條件判斷,顧名思義,就是對當前引數進行相關條件的比較,如果符合要求就進行相對應的操作,條件語句涉及到兩種語法,if和case,兩種語法都各具特色,我們可以通過例項來進行比較 if 判斷條件1 then 條件為真的分支 elif 判斷條件2 then 條件為真的分支 elif 判斷條件3 then 條...
shell指令碼的if判斷語句 案例
if語句 1 按照檔案型別進行判斷 d 檔案 判斷該檔案是否存在,並且是否為字元裝置檔案 是字元裝置為真 e 檔案 判斷該檔案是否存在 存在為真 e root echo 輸出為0 判斷為真,即為0 常用的格式有 e root echo yes echo no 一 單分支if條件語句格式有如下兩種 i...
Shell 判斷語句
檔案判斷運算子 b 當file存在並且是塊檔案時返回真 c 當file存在並且是字元檔案時返回真 d 當pathname存在並且是乙個目錄時返回真 e 當pathname指定的檔案或目錄存在時返回真 f 當file存在並且是正規檔案時返回真 g 當由pathname指定的檔案或目錄存在並且設定了sg...