算術比較判斷小結

小技巧:

if condition; then commands; fi

if condition; then commands;elif condition;then commands;else commands fi

嵌套過多會影響閱讀,可以使用邏輯運算符變簡單直接:

[ condition ] && commands;

[ condition ] || commands;

注:條件一般放在封閉的括號中,且在 “[” 和 “]"後和前必須有空格,不然會報錯。

算術比較:

[ $var -eq 0 ] 等於0 返回真

[ $var -ne 0 ] 不等於0返回真

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

多條件組合:

[ $var1 -ne 0 -a $var2 lt $var1 ] -a表示邏輯與

[ $var1 -ne 0 -o $var2 lt $var1 ] -o表示邏輯或

字符串比較:

注:字符串比較最好採用雙中括號,不然可能報錯;

       ”=“ 前後各有一個空格,如果不加則變成了賦值關係!!!

[[ $str1 = $str2 ]] 兩字符串相等時返回真,即二者文本相同

[[ $str1 == $str2 ]] 作用同上

!= 不同返回真 ’>'和'<'不贅述

[[ -z $str1 ]] 如果字符串是空串,返回真

[[ -n $str1 ]] 如果字符串不是空串,返回真

文件比較:

[ -f $file ] 文件路徑或者文件名則返回真

[ -x $file ] 文件可執行則返回真

[ -d $file ] 目錄爲真返回真

[ -e $file ] 文件存在返回真

[ -c $file ]文件是字符設備文件的路徑返回真

[ -b $file ]文件是塊設備文件的路徑返回真

[ -w $file ]文件可寫返回真

[ -r $file ]文件可讀返回真

[ -L $file ]文件是符號鏈接返回真

例:

#!/bin/bash
file="/etc/passwd"
if [ -e $file ];
then echo File Exists;
else
echo $file not exists
fi

初學的同胞們可以自己寫一下, 會發現各種問題,比如賦值寫成相等。。

最後一種: test

test 的使用可以減少中括號數量

直接上代碼:

if [ $var -eq 0 ] ;

then echo true;

fi

可以被替換爲:

if test $var -eq 0 ; 。。。

路途遙遠,要有耐心

發佈了44 篇原創文章 · 獲贊 14 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章