shell 中的if語句

2021-06-22 11:09:30 字數 2005 閱讀 7280

1

2

3

4

if*[*"a"*=*"a"*] // 空格用*標示

then

echo "a = a"

fi

最近幾天寫指令碼,遇到if語句時總是吃不準。這次總結一下。

使用if語句有2中方式,一種是使用test命令另一種是使用「」,其中後者比較常用。

方法一,使用test命令,這個命令返回乙個boolean值。

1

test -e /dataa || echo "不存在"

上面的例子使用了判斷語句的短路功能,即如果「||」前面是true的話,後面的語句就沒有必要執行了。所以不會顯示「不存在」。

引數:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

-e 通過檔名檔案是否存在

-f 通過檔名判斷是否是檔案

-d 通過檔名判斷是否為目錄

-eq 判斷兩個數值是否相等

-nq 判斷兩個數值是否不相等

-gt 判斷第乙個數值是否大於第二個數值

-lt 判斷第乙個數值是否小於第二個數值

-ge 判斷第乙個數值是否大於等於第二個數值

-le 判斷第乙個數值是否小於等於第二個數值

-z 判斷字串是否是空串

-n 判斷字串是否不是空串

=  判斷兩個字串是否相等

!=判斷兩個字串是否不相等

-a 相等於&&

-o 相當於||

! 邏輯非

方法二:

除test命令外,還可以使用「」,但是需要注意的是需要用空格在各個單位間,如:

1

2

3

4

if [ "a" = "a" ]

then

echo "a = a"

fi

在判斷的時候使用「==」或者是「=」都是可以的。其中「」中的變數最好用雙引號設定,常量用雙引號和單引號都行。

這種形式可能和test命令有關,對比下:

1

2

3

4

if test "a" = "a"

then

echo "a = a"

fi

下面的寫法也是可行的:

1

2

3

if test "a" = "a" ;then

echo "a = a"

fi

** 

shell中的if語句

語法格式 if command then commands fi其中的command包含如下 shell command 任何shell命令,如果shell命令返回0,代表true,否則,代表false。並且多個command可以同時作為if的判斷條件,即可以寫為 if command1 comma...

shell 中的if語句

bash中如何實現條件判斷?條件測試型別 整數測試 字元測試 檔案測試 一 條件測試的表示式 expression 括號兩端必須要有空格 expression 括號兩端必須要有空格 test expression 組合測試條件 二 整數比較 命令間的邏輯關係 第乙個條件為假 第二個條件不用在判斷,最...

shell中的語句

for語句 別寫指令碼列印1 10 編寫指令碼檢視相同區域網內的1 10號ip是否工作並輸出可以工作的ip while語句 格式while 條件 編寫指令碼,每過10s輸出一次系統佔用率 執行指令碼 if語句 if 條件 then elif 條件 then elif 條件 then else 若不加...