shell 條件結構之 if 語句使用總結

2022-02-25 12:06:41 字數 2320 閱讀 6549

#條件判斷的格式

[ exp ]

[[ exp ]]

test exp

注意: exp 與 「[」、"]"括號之間必須要有空格,否則會報語法錯誤;

[ exp ] 與 [[ exp ]]的區別,本文僅討論[ exp ],而在[[ exp ]]模式下,額外支援指令,但是同樣都需要空格;

&&、|| 分別作為邏輯與、邏輯或的運算

[[ 1 == 1 ]] 結果為真

#條件判斷的型別

條件判斷的型別有三種:整數判斷,字元判斷,檔案判斷

條件邏輯表示式:

-a : and 邏輯與

-o : or 邏輯或

! : nor 邏輯非

##整數判斷

-eq#equal 相等

-ne#not equal 不相等

-gt#greater than 大於

-lt#less than 小於

-ge#greater or equal 大於或等於

-le#less or equal 小於或等於

##字元判斷

-z#zero 當前字串是否為空

-n#not zero 當前字串是否不為空

==兩端字串是否相等

!=兩端字串是否不相等

>長度是否大於

<長度是否小於

注意:「< 」與 「> 」做字串比較的時候,在[ exp ] 情況下需要需要輸入 「<」 或者 「>」 作為轉義,或者使用 [[ > exp ]] 模式可以直接使用「< 」與 「> 」作為判斷符號使用。

str1=

"hello"

str2=

"hell"if[

[$str1

>

$str2]]

;then

echo

"$str1 > $str2"

fiif

[$str1 \>

$str2];

then

echo

"$str1 > $str2"

fi

##檔案判斷

-e#exit 判斷檔案是否存在

-f#if file 判斷是否是檔案

-d#dir 判斷是否是路徑

-r判斷檔案是否可讀

-w判斷檔案是否可寫

-x判斷檔案是否可執行

-l判斷檔案是否為符號鏈結

#!/bin/bash

mfile=123.sh

if[ -f $mfile -a -x $mfile];

then

echo

"$mfile is ok"

fi

if

[[ -f $mfile

&& -x $mfile]]

;then

echo

"$mfile is ok"

fi

##條件判斷基本結構

if conditions;then

statement1

....

...fi

if conditions;then

statement1

else

statement2

fiif condition1;

then

statement1

elif condition2 ;

then

statement2

fi

#總結

Shell指令碼的條件測試和if條件語句使用方法

一 條件測試操作 要使shell指令碼程式具備一定的 智慧型 面臨的第乙個問題就是如何區分不同的情況以確定執行何種操作。shell環境根據命令執行後的返回狀態值 來判斷是否執行成功,當返回值為0時表示成功,否則 非0值 表示失敗或異常。使用專門的測試工具 test命令,可以對特定條件進行測試,並根據...

Shell條件語句

if 語句通過關係運算子判斷表示式的真假來決定執行哪個分支。shell 有三種 if else 語句 if else 語句的語法 if expression then statement s to be executed if expression is true fi注意 expression 和...

shell 條件語句

test命令 測試表示式是否成立,若成立返回0,否則返回其他數值 格式一 test 條件表示式 格式二 條件表示式 檔案測試 操作符 檔案或目錄 常用的測試操作符 d 測試是否為目錄 directory e 測試目錄或檔案是否存在 exist f 測試是否為檔案 file r 測試當前使用者是否有許...