溫馨提示×

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

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

Shell腳本基本判斷

發(fā)布時(shí)間:2020-06-16 20:29:19 來(lái)源:網(wǎng)絡(luò) 閱讀:252 作者:KingApple 欄目:系統(tǒng)運(yùn)維

一.條件測(cè)試

格式1: test  條件表達(dá)式
格式2:[ 條件表達(dá)式 ]

二.文件測(cè)試

    -d:測(cè)試是否為目錄(Directory)
    -e:測(cè)試目錄或文件是否存在(Exist)
    -f:測(cè)試是否為文件(File)
    -r:測(cè)試當(dāng)前用戶(hù)是否有權(quán)限讀取(Read)
    -w:測(cè)試當(dāng)前用戶(hù)是否有權(quán)限寫(xiě)入(Write)
    -x:測(cè)試當(dāng)前用戶(hù)是否有權(quán)限執(zhí)行(eXcute)

[root@localhost ~]# test -d /etc/yum  //測(cè)試/etc/yum是否是目錄
[root@localhost ~]# echo $?             //上一條命令執(zhí)行狀態(tài)0就是正常執(zhí)行,非0就是錯(cuò)誤
    0
[root@localhost ~]# test -f /etc/yum   //測(cè)試/etc/yum是否是文件
[root@localhost ~]# echo $?
    1
[root@localhost ~]# test -e /etc/yum  //測(cè)試/etc/yum是否存在
[root@localhost ~]# echo $?
    0

三.整數(shù)測(cè)試

    -eq:等于(Equal)
    -ne:不等于(Not Equal)
    -gt:大于(Greater Than)
    -lt:小于(Lesser Than)
    -le:小于或等于(Lesser or Equal)
    -ge:大于或等于(Greater or Equal)

[root@localhost ~]# [ $(who|wc -l) -gt 10 ]&& echo "有點(diǎn)多!" //統(tǒng)計(jì)當(dāng)前用戶(hù)量
    有點(diǎn)多!

四.字符串比較

    格式1:[ 1 == 2 ]
    格式2:[ -z 2 ]

    ==:字符串內(nèi)容相同
    !=:字符串內(nèi)容不同,!表示相反的意思
    -z:字符串內(nèi)容為空

五.邏輯測(cè)試

    -a或&&:邏輯與、“而且”的意思
    -o或||: 邏輯或、“或者”的意思
    !:邏輯否

[root@localhost ~]# [ ! -e /opt/abc ]&&mkdir /opt/abc  // /opt/abc這個(gè)目錄不存在我就創(chuàng)建這個(gè)目錄
[root@localhost ~]# ls /opt
abc  rh

6.if語(yǔ)句單分支

![](https://s1.51cto.com/images/blog/201910/09/a9f39959fb7e9ee3c80634b282a7ac5d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#!/bin/bash
mulu="/etc/ccc"  
if [ ! -d $mulu ] 
then
    mkdir -p $mulu
fi

7.if雙分支語(yǔ)句

Shell腳本基本判斷

#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &>/dev/null
if [ $? -eq 0 ]
then
    echo "Host $1 is up "
else
    echo "Host $1 is down "
fi
#-C發(fā)數(shù)據(jù)包  ,-0.2每隔兩秒發(fā)一次  -W 3次回復(fù)  所有輸出到這個(gè)無(wú)用的目錄中

[root@localhost ~]# source test.sh
    Host  is down 

8.if多分支和嵌套語(yǔ)句

Shell腳本基本判斷

#!/bin/bash
#一場(chǎng)跑步比賽,10秒內(nèi)進(jìn)入決賽,進(jìn)入決賽之后會(huì)被分進(jìn)男子組或女子組
read -p "請(qǐng)輸入你的比賽時(shí)間" tim
if [ $stim -lt 10 ]
then
    echo "進(jìn)入決賽"
    read -p "請(qǐng)輸入你的性別(男/女) " sex
    if [ $sex = "男" ]
        then
            echo "進(jìn)入男子組"
    else
            echo "進(jìn)入女子組"
    fi
else "被淘汰"
fi
向AI問(wèn)一下細(xì)節(jié)

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

AI