一、條件判斷語句
滿足條件執行對應命令
[ 條件 ]:一般多用於腳本內
例:
[ -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以內繼續判斷,如不在則返回"你能不行行"