Shell條件判斷語句與if

一、條件判斷語句

滿足條件執行對應命令

[ 條件 ]:一般多用於腳本內

例:

[ -f /etc/hosts ]

test 條件:一般多用於Linux字符終端

1.文件或目錄判斷

-f:判斷是否爲文件

-d:判斷是否爲目錄

-e:判斷是否存在

-r:判斷文件/目錄是否擁有讀取權限

-w:判斷文件/目錄是否擁有寫入權限

-x:判斷文件/目錄是否擁有執行權限

例:

[ -f /etc/hosts ] //判斷/etc/hosts是否爲一個文件,如是一個文件,則echo $?肯定爲0

[ ! -f /etc/hosts ] ; touch /etc/hosts //判斷/etc/hosts是否是一個文件,如不是一個文件,echo $?肯定爲0

[ -d /etc ] //判斷/etc是否爲一個目錄,如是一個目錄,則echo $?肯定爲0

[ -w /etc/hosts ] //判斷/etc/hosts是否擁有寫入權限,如擁有寫入權限,則echo $?肯定爲0

[ -e /boot ] //判斷/boot是否存在,如存在,則echo $?肯定爲0

2.數值比較

-eq:判斷兩邊數值是否相等

-ne:判斷兩邊數值是否不等

-gt:判斷左邊數值是否大於右邊數值

-ge:判斷左邊數值是否大於等於右邊數值

-lt:判斷左邊數值是否小於右邊數值

-le:判斷左邊數值是否小於等於右邊數值

例:

[ 1 -eq 1 ] //判斷1是否等於1,如等於則echo $?肯定爲0

[ 3 -le 5 ] //判斷3小於等於5,如小於等於則echo $?肯定0

注:數值比較只能比較整數

3.字符串比較

==:判斷兩邊字符串是否完全相等

-z:判斷後需變量值是否未空

例:

[ $PWD == /root ] //判斷PWD變量值是否等於/root,如等於則echo $?肯定爲0

[ ! $PWD == /root ] //判斷PWD變量值是否等於/root,如不等於則echo $?肯定爲0

[ -z $PWD ] //判斷PWD變量值是否爲空,如爲空則echo $?肯定爲0

注:字符串指字母、數字、中文

4.邏輯測試

&& 或 ; 或 -a //並且關係,條件成立繼續執行;make && make install(前命令執行成功後繼續執行後續命令);find / -name a* - a -type f

|| 或 -o //或者關係,滿足任一條件繼續執行;find / -name a* - o -type f

! 條件取反

二、if語句

單分支語句:滿足條件,則執行下面的命令;命令效果與[ -f /etc/a ] && chmod +x /etc/a

if [ 條件判斷語句 ]

then

命令

fi

例:

if [ -f /etc/a ]

then

chmod +x /etc/a

fi

雙分支語句:滿足條件,則執行命令一,如不滿足條件,執行命令二

if [ 條件判斷語句 ]

then

命令一

else

命令二

fi

多分支語句:滿足判斷一則執行命令一,如不滿足則繼續判斷二,滿足則執行命令二, xxxx,如都不滿足則執行命令x

if [ 條件判斷語句一 ]

then

命令一

elif [ 條件判斷語句二 ]

then

命令二

elif [ 條件判斷語句三 ]

then

命令三

else

命令x

fi

#!/bin/bash

read -p "請輸入您的分數:[1-100]" A

if [ $A -le 100 ]

then

if [ $A -eq 100 ]

then

echo "優"

elif [ $A -le 89 ] && [ $A -ge 70 ]

then

echo "良"

elif [ $A -le 69 ] && [ $A -ge 60 ]

then

echo "及格"

else

echo "你退羣吧!!!"

fi

else

echo "你能不行行"

fi

註解:if先行判斷用戶輸入數值是否在100以內,如在100以內繼續判斷,如不在則返回"你能不行行"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章