linux下shell指令碼的if判斷

2021-09-19 17:34:00 字數 3322 閱讀 7676

**:

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語句中經常用到,需要熟練掌握,在此基礎上才能練就一手很好的指令碼編寫能力。祝各位每天都能獲得很大的進步.....

linux下的shell指令碼

shell也是作業系統中的乙個軟體,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面,系統中的命令用shell去解釋shell接受系統回應的輸出並顯示其到螢幕中 什麼是shell指令碼 指令碼是一種解釋型語言,用shell指令碼儲存執行動作,用指令碼判定命令的執行條件,用指令碼來實...

Linux下Shell指令碼

shell 指令碼 shell script 是一種為 shell 編寫的指令碼程式。從業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 shell程式設計 都是指 shell ...

LINUX下的shell指令碼 shell簡介篇

什麼是shell?1.shell是linux的一外殼,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面 2.當使用者下達指令給作業系統的時候,實際上是把指令告訴shell,經過shell解釋,處理後讓核心做出相應的動作 3.系統的回應和輸出的資訊也由shell處理,然後顯示在使用者...