shell shell中if語句的使用

2021-08-14 10:41:23 字數 3417 閱讀 5928

**:

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、執行乙個命令的結果

ifgrep -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、命令&&命令

ifgrep -q "

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

9、命令||命令

ifgrep -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 5fi

#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:

53right,your grade is f.

[root@lovelace

if]# ./grade.sh

please input your grade:

88good,your grade is b.

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

Shell shell中的迴圈語句

for語法格式 for var in list do commands done 其中list可以包含 1 直接寫 for alpha in a b c d do echo alpha done2 變數 list a b c d for alpha in list do echo alpha don...

shell shell中if語句的使用

bash中如何實現條件判斷?條件測試型別 整數測試 字元測試 檔案測試 一 條件測試的表示式 expression 括號兩端必須要有空格 expression 括號兩端必須要有空格 test expression 組合測試條件 a and o or 非 二 整數比較 eq 測試兩個整數是否相等 ne...

Shell shell指令碼中的空格

1.定義變數時,號的兩邊不可以留空格.eg gender femal right gender femal wrong gender femal wrong gender test right 左邊是命令的話 號的右邊有空格是正確的 左邊不能有空格 gender test wrong 等號 左邊必須...