if語句用法與條件測試
阿新 • • 發佈:2020-12-28
文章目錄
一、if迴圈
if語句分為三種結構
(一)、單分支
if 條件測試操作
then 命令序列
fi
if [ 3 -gt 2 ]; then echo "ok"; fi #如果3大於2輸出ok
(二)、雙分支
if 條件測試操作
then
命令序列 1
else
命令序列 2
fi
#!/bin/bash
read -p "請輸入您的分數(0-100): " score
if [ $score -ge 85 ] && [ $score -le 100 ]
then
echo "$score 分,優秀!"
elif [ $score -ge 70 ] && [ $score -le 84 ]
then
echo "$score 分,合格!"
else
echo "$score 分,不合格!"
fi
##判斷成績,85-100優秀,84-70合格,其他為不合格
(三)、多分支
if 條件測試操作 1
then
命令序列 1
elif 條件測試操作 2
then
命令序列 2
[else]
[命令序列 3]
fi
二、case迴圈
case 變數值 in
模式 1)
命令序列 1
;;
模式 2)
命令序列 2
;;
……
*)
預設命令序列
Esac
三、條件判斷
test 命令,可以對特定條件進行測試,並根據返回值來判斷條件是否成立($?返回值為 0 表示條件成立)。
格式一:
test 條件表示式
格式二:
[ 條件表示式 ] #方括號“[”或“]”與條件表示式之間需要至少一個空格進行分隔
檔案測試
格式:[ 操作符 檔案或目錄 ]
常用的操作符:
-e:測試目錄或檔案是否存在(Exist)。
-d:測試是否為目錄(Directory)。
-f:測試是否為檔案(File)。
-r:測試當前使用者是否有許可權讀取(Read)。
-w:測試當前使用者是否有許可權寫入(Write)。
-x:測試是否設定有可執行(Excute)許可權。
整數值比較
格式:[ 整數變數1 操作符 整數變數2 ]
常用的操作符:
-eq:等於 ==
-ne:不等於 !=
-gt:大於 \>
-lt:小於 \<
-le:小於等於
-ge:大於等於
例
[[ 2 ge 3 ]] && echo true || false
#!/bin/bash
ping -c 3 -i 0.5 -W 2 $1 &> /dev/null && echo “$1 online” || echo “$1 off”
-c:傳送包的個數
-i:傳送包的間隔時間
-W:超時時間
-w:多少秒後停止 ping 命令操作