溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Shell編程之條件語句章

發(fā)布時(shí)間:2020-07-16 23:59:46 來源:網(wǎng)絡(luò) 閱讀:1297 作者:JarryZ 欄目:系統(tǒng)運(yùn)維
條件測試:

1、文件測試

2、整數(shù)測試

3、字符串與邏輯測試

if語句:

1、if單分支語句

2、if雙分支語句

3、if多分支語句

4、if嵌套語句

test命令:

測試特定的表達(dá)式 是否成立,當(dāng)條件成立時(shí),測試語句的返回值為0,否則為其他數(shù)值。

格式1:test 條件表達(dá)式
格式2:[ 條件表達(dá)式 ]       //注意有空格
文件測試:
格式:[ 操作符 文件或目錄 ]
常用的測試操作符:
1、-d:測試是否為目錄(Directory)
2、-e:測試目錄或文件是否存在(Exist)
3、-f:測試是否為文件(File)
4、-r:測試當(dāng)前用戶是否有權(quán)限讀?。≧ead)
5、-w:測試當(dāng)前用戶是否有權(quán)限寫入(Write)
6、-x:測試當(dāng)前用戶是否有權(quán)限執(zhí)行(eXcute)

舉例說明:

方法一:test -d /etc/sysconfig(測試etc目錄下是否有sysconfig這個(gè)文件或者目錄存在)   
              echo $?(進(jìn)行條件判斷,如果由此文件輸出結(jié)果為0值)
方法二:[ -d /etc/sysconfig ]
              echo $?(進(jìn)行條件判斷,如果無此文件輸出結(jié)果為非0值,就是1)
整數(shù)值比較:
格式:[ 整數(shù)1 操作符 整數(shù)2 ]
常用的測試操作符:
1、-eq:等于(Equal)
2、-ne:不等于(Not Equal)
3、-gt:大于(Greater Than)
4、-lt:小于(Lesser Than)
5、-le:小于或等于(Lesser or Equal)
6、-ge:大于或等于(Greater or Equal)

Demo1 :

目的:查看目錄下是否有我們需要的文件,若沒有則直接創(chuàng)建。具體操作如下:

[root@localhost ~]#  ! test -e /etc/ssc && touch /etc/ssc(查看在etc目錄有是否有ssc文件,如果沒有直接在此目錄下創(chuàng)建)
[root@localhost ~]# cd /etc(驗(yàn)證:進(jìn)入etc目錄下)
[root@localhost etc]# ls(查看詳細(xì)信息,此時(shí)可以找到我們創(chuàng)建的sscw文件)
字符串比較:
格式1:[ 字符串1 = 字符串2 ]
?            [ 字符串1 ! = 字符串2 ]
格式2:[ -z 字符串]
常用的測試i操作符:
1、=:字符串內(nèi)容相同
2、!=:字符串內(nèi)容不同,!表示相反的意思
3、-z:字符串內(nèi)容為空
邏輯測試:
格式1:[ 表達(dá)式1 ] 操作符 [ 表達(dá)式2 ] ...
格式2:命令1 操作符 命令2 ...
常用的測試操作符:
1、-a或&&:邏輯與,“而且”的意思
2、-o或||:邏輯或,“或者”的意思
3、?。哼壿嫹?/code>
1、單分支結(jié)構(gòu):

Shell編程之條件語句章

2、雙分支結(jié)構(gòu):

Shell編程之條件語句章

3、多分支結(jié)構(gòu):

Shell編程之條件語句章

if語句應(yīng)用示例:

1.單分支if語句
2.雙分支if語句:

判斷目標(biāo)主機(jī)是否存活,顯示檢測結(jié)果

Shell編程之條件語句章

3.多分支if語句:

判斷分?jǐn)?shù)范圍,分出優(yōu)秀、合格、不合格三擋

Shell編程之條件語句章

Demo2(判斷成績):

使用單分支實(shí)現(xiàn):


vim source.sh
#!/bin/bash
read -p "請輸入整數(shù)" src
if [ $src -le 50 ]
 then 
    echo "數(shù)字太小"
fi
chmod +x source.sh
./source.sh

使用雙分支實(shí)現(xiàn):(進(jìn)入創(chuàng)建的執(zhí)行文件中進(jìn)行修改)

vim source.sh
#!/bin.bash
read -p "請輸入整數(shù)" src
if [ $src -le 50 ]
 then 
    echo "數(shù)字太小"
 else
    echo "數(shù)字太大"
fi

使用多分支實(shí)現(xiàn):(進(jìn)入創(chuàng)建的執(zhí)行文件中進(jìn)行修改)

vim source.sh
#!/bin.bash
read -p "請輸入整數(shù)" src
if [ $src -ge 85 ]&& [ $src -le 100 ]
 then 
    echo "$src成績優(yōu)秀"
elif [ $src -ge 70 ] && [ $src -le 84]
 then
    echo " $src成績合格"
 else
    echo "成績不合格"
fi

Demo3:

實(shí)驗(yàn)環(huán)境:進(jìn)行跑步比賽,10秒內(nèi)進(jìn)入決賽,輸入性別后,分別提示進(jìn)入男子組還是女子組,使用多重判斷,嵌套if實(shí)現(xiàn)

具體在執(zhí)行文件中輸入內(nèi)容如下圖:

Shell編程之條件語句章

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI