Shell腳本基本判斷

一.條件測試

格式1: test  條件表達式
格式2:[ 條件表達式 ]

二.文件測試

-d:測試是否爲目錄(Directory)
    -e:測試目錄或文件是否存在(Exist)
    -f:測試是否爲文件(File)
    -r:測試當前用戶是否有權限讀取(Read)
    -w:測試當前用戶是否有權限寫入(Write)
    -x:測試當前用戶是否有權限執行(eXcute)

[root@localhost ~]# test -d /etc/yum  //測試/etc/yum是不是目錄
[root@localhost ~]# echo $?             //上一條命令執行狀態0就是正常執行,非0就是錯誤
    0
[root@localhost ~]# test -f /etc/yum   //測試/etc/yum是不是文件
[root@localhost ~]# echo $?
    1
[root@localhost ~]# test -e /etc/yum  //測試/etc/yum是否存在
[root@localhost ~]# echo $?
    0

三.整數測試

-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 "有點多!" //統計當前用戶量
    有點多!

四.字符串比較

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

    ==:字符串內容相同
    !=:字符串內容不一樣,!表示相反的意思
    -z:字符串內容爲空

五.邏輯測試

-a或&&:邏輯與、「並且」的意思
    -o或||: 邏輯或、「或者」的意思
    !:邏輯否

[root@localhost ~]# [ ! -e /opt/abc ]&&mkdir /opt/abc  // /opt/abc這個目錄不存在我就建立這個目錄
[root@localhost ~]# ls /opt
abc  rh

6.if語句單分支

![](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雙分支語句

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發數據包  ,-0.2每隔兩秒發一次  -W 3次回覆  全部輸出到這個無用的目錄中

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

8.if多分支和嵌套語句

Shell腳本基本判斷

#!/bin/bash
#一場跑步比賽,10秒內進入決賽,進入決賽以後會被分進男子組或女子組
read -p "請輸入你的比賽時間" tim
if [ $stim -lt 10 ]
then
    echo "進入決賽"
    read -p "請輸入你的性別(男/女) " sex
    if [ $sex = "男" ]
        then
            echo "進入男子組"
    else
            echo "進入女子組"
    fi
else "被淘汰"
fi
相關文章
相關標籤/搜索