shell中的if語句

2021-10-02 19:35:34 字數 3577 閱讀 5020

if 語句

最簡單的用法就是只使用 if 語句,它的語法格式為:

if  condition

then

statement(s)

fi

# 請注意 condition 後邊的分號;,當 if 和 then 位於同一行的時候,這個分號是必須的,否則會有語法錯誤

例項1下面的例子使用 if 語句來比較兩個數字的大小:

[root@server1 mnt]# sh test.sh 11

a和b相等

[root@server1 mnt]# cat test.sh 

#!/bin/bash

read a

read b

if (( $a == $b ))

then

echo "a和b相等"

fi

# (())是一種數學計算命令,它除了可以進行最基本的加減乘除運算,還可以進行大於、小於、等於等關係運算,以及與、或、非邏輯運算。當 a 和 b 相等時,(( $a == $b ))判斷條件成立,進入 if,執行 then 後邊的 echo 語句

例項2在判斷條件中也可以使用邏輯運算子

[root@server1 mnt]# sh test.sh 

19120

[root@server1 mnt]# sh test.sh 

1950

你都成年了,智商怎麼還不及格!

來westos學習吧,能迅速提高你的智商。

[root@server1 mnt]# cat test.sh 

#!/bin/bash

read age

read iq

if (( $age > 18 && $iq < 60 ))

then

echo "你都成年了,智商怎麼還不及格!"

echo "來westos學習吧,能迅速提高你的智商。"

fi

# &&就是邏輯「與」運算子,只有當&&兩側的判斷條件都為「真」時,整個判斷條件才為「真」。

#熟悉其他程式語言的讀者請注意,即使 then 後邊有多條語句,也不需要用包圍起來,因為有 fi 收尾呢

if else 語句

如果有兩個分支,就可以使用 if else 語句,它的格式為:

if  condition

then

statement1

else

statement2

fi

如果 condition 成立,那麼 then 後邊的 statement1 語句將會被執行;否則,執行 else 後邊的 statement2 語句

[root@server1 mnt]# sh test.sh 21

a和b不相等,輸入錯誤

[root@server1 mnt]# cat test.sh 

#!/bin/bash

read a

read b

if (( $a == $b ))

then

echo "a和b相等"

else

echo "a和b不相等,輸入錯誤"

fi

# 從執行結果可以看出,a 和 b 不相等,判斷條件不成立,所以執行了 else 後邊的語句

if elif else 語句

shell 支援任意數目的分支,當分支比較多時,可以使用 if elif else 結構,它的格式為:

if  condition1

then

statement1

elif condition2

then

statement2

elif condition3

then

statement3

……else

statementn

fi

注意,if 和 elif 後邊都得跟著 then

整條語句的執行邏輯為:

如果 condition1 成立,那麼就執行 if 後邊的 statement1;如果 condition1 不成立,那麼繼續執行 elif,判斷 condition2。

如果 condition2 成立,那麼就執行 statement2;如果 condition2 不成立,那麼繼續執行後邊的 elif,判斷 condition3。

如果 condition3 成立,那麼就執行 statement3;如果 condition3 不成立,那麼繼續執行後邊的 elif。

如果所有的 if 和 elif 判斷都不成立,就進入最後的 else,執行 statementn

[root@server1 mnt]# sh test.sh 

19成年

[root@server1 mnt]# cat test.sh 

#!/bin/bash

read age

if (( $age <= 2 )); then

echo "嬰兒"

elif (( $age >= 3 && $age <= 8 )); then

echo "幼兒"

elif (( $age >= 9 && $age <= 17 )); then

echo "少年"

elif (( $age >= 18 && $age <=25 )); then

echo "成年"

elif (( $age >= 26 && $age <= 40 )); then

echo "青年"

elif (( $age >= 41 && $age <= 60 )); then

echo "中年"

else

echo "老年"

fi

輸入乙個整數,輸出該整數對應的星期幾的英文表示

[root@server1 mnt]# sh test.sh 

input integer number: 4

thursday

[root@server1 mnt]# cat test.sh 

#!/bin/bash

printf "input integer number: "

read num

if ((num==1)); then

echo "monday"

elif ((num==2)); then

echo "tuesday"

elif ((num==3)); then

echo "wednesday"

elif ((num==4)); then

echo "thursday"

elif ((num==5)); then

echo "friday"

elif ((num==6)); then

echo "saturday"

elif ((num==7)); then

echo "sunday"

else

echo "error"

fi

shell 中的if語句

1 2 3 4 if a a 空格用 標示 then echo a a fi 最近幾天寫指令碼,遇到if語句時總是吃不準。這次總結一下。使用if語句有2中方式,一種是使用test命令另一種是使用 其中後者比較常用。方法一,使用test命令,這個命令返回乙個boolean值。1 test e data...

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 組合測試條件 二 整數比較 命令間的邏輯關係 第乙個條件為假 第二個條件不用在判斷,最...