shell 中的if語句

2021-09-02 06:39:52 字數 3346 閱讀 5868

**:

bash中如何實現條件判斷?

條件測試型別

整數測試

字元測試

檔案測試

一、條件測試的表示式:

[ expression ]  括號兩端必須要有空格

[[ expression ]] 括號兩端必須要有空格

test expression

組合測試條件

二、整數比較:

命令間的邏輯關係

第乙個條件為假 第二個條件不用在判斷,最總結果已經有

第乙個條件為真,第二個條件必須得判斷

三、字串比較

四、檔案測試

五、if語法

if 判斷條件 0為真 其他都為假

if 判斷條件;then

statement1

statement2

.......

fi

if 判斷條件;then

statement1

statement2

.....

else

statement3

statement4

fi

note:

if語句進行判斷是否為空

[ "$name」 = "" ] 

等同於

[ ! "$name" ]

[ -z "$name" ]

note:使用if語句的時候進行判斷如果是進行數值類的判斷,建議使用let(())進行判斷,對於字串使用test[ ] or [[ ]] 進行判斷

(())中變數是可以不使用$來引用的

example:表述數字範圍的時候 可以使用if可以是使用case

if [ $x -gt 90 -o $x -lt 100 ]

case $x in

100)

9[0-9])

這個語句的意思是如果$name為空,那麼x=x成立折執行下面的結果;

if [ "x$name" != "x" ]
寫指令碼的時候很多時候需要用到回傳命令,$?如果上乙個命令執行成功,回傳值為0,否則為1~255之間的任何乙個

條件測試的寫法

1、執行乙個命令的結果

if grep -q "rm" fs.sh;then 

2、傳回乙個命令執行結果的相反值

if !grep -q "rm" fs.sh;then 

3、使用復合命令((算式))

if ((a>b));then 

4、使用bash關鍵字 [[判斷式]]

if [[ str > xyz ]];then 

5、使用內建命令:test 判斷式

if test "str" \> "xyz";then 

6、使用內建命令:[判斷式]  類似test

if [ "str" \> "xyz" ];then 

7、使用-a -o進行邏輯組合

[ -r filename -a -x filename ] 

8、命令&&命令

if grep -q "rm" fn.sh && [ $a -lt 100 ];then 

9、命令||命令

if grep -q "rm" fn.sh || [ $a -lt 100 ];then 

示例指令碼(

寫一段指令碼,輸入乙個測驗成績,根據下面的標準,輸出他的評分

成績(a-f)。

a: 90–100

b: 80–89

c: 70–79

d: 60–69

f: <60

#/bin/bash

#verson:0.1

#auther:lovelace

#pragram:this pragram is calculation your grade

#import an argument

read -p "please input your grade:" x

declare -i x

#jugemet $x value is none or not

if [ "$x" == "" ];then

echo "you don't input your grade...."

exit 5

fi#jugement the gread level

if [[ "$x" -ge "90" && "$x" -le "100" ]];then

echo "congratulation,your grade is a."

elif [[ "$x" -ge "80" && "$x" -le "89" ]];then

echo "good,your grade is b."

elif [[ "$x" -ge "70" && "$x" -le "79" ]];then

echo "ok.your grade is c."

elif [[ "$x" -ge "60" && "$x" -le "69" ]];then

echo "yeah,your grade is d."

elif [[ "$x" -lt "60" ]];then

echo "right,your grade is f."

else

echo "unknow argument...."

fi

執行結果:

[root@lovelace if]# ./grade.sh

please input your grade:

you don't input your grade....

[root@lovelace if]# ./grade.sh

please input your grade:53

right,your grade is f.

[root@lovelace if]# ./grade.sh

please input your grade:88

good,your grade is b.

總結:條件判斷在shell語句中經常用到,需要熟練掌握,在此基礎上才能練就一手很好的指令碼編寫能力。祝各位每天都能獲得很大的進步.....

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中的語句

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