條件判斷語句 if case
條件測試操作
Shell環境根據命令執行後的返回狀態值(
?
)
來
判
斷
是
否
執
行
成
功
,
當
返
回
值
為
0
(
真
t
r
u
e
)
時
表
示
成
功
,
返
回
值
為
非
0
值
(
假
f
a
l
s
e
)
時
表
示
失
敗
或
異
常
。
t
e
s
t
命
令
,
可
以
對
特
定
條
件
進
行
測
試
,
並
根
據
返
回
值
來
判
斷
條
件
是
否
成
立
(
?)來判斷是否執行成功,當返回值為0(真true)時表示成功,返回值為非0值(假false)時表示失敗或異常。 test 命令,可以對特定條件進行測試,並根據返回值來判斷條件是否成立(
?)來判斷是否執行成功,當返回值為0(真true)時表示成功,返回值為非0值(假false)時表示失敗或異常。test命令,可以對特定條件進行測試,並根據返回值來判斷條件是否成立(?返回值為 0 表示條件成立)。
格式一:test 條件表示式
格式二:[ 條件表示式 ] #方括號“[”或“]”與條件表示式之間需要至少一個空格進行分隔
檔案測試
格式:[ 操作符 檔案或目錄 ]
常用的操作符:
-e:測試目錄或檔案是否存在(Exist)。
-d:測試是否為目錄(Directory)。
-f:測試是否為檔案(File)。
-r:測試當前使用者是否有許可權讀取(Read)。
-w:測試當前使用者是否有許可權寫入(Write)。
-x:測試是否設定有可執行(Excute)許可權。
整數值比較
格式:[ 整數變數1 操作符 整數變數2 ]
常用的操作符:
-eq:等於 ==
-ne:不等於 !=
-gt:大於 >
-lt:小於 <
-le:小於等於
-ge:大於等於
字串比較
格式1:
[ 字串1 = 字串2 ] 或 [ 字串1 == 字串2 ]
[ 字串1 != 字串2 ]
格式2:
[ -z 字串 ] #檢查字串是否為空(Zero),對於未定義或賦予空值的變數將視為空串
[ -n 字串 ] #檢查是否有字串存在
邏輯測試
格式1:[ 表示式1 ] 操作符 [ 表示式2 ]
格式2:命令1 操作符 命令2
常用的操作符:
-a或&& :邏輯與,“而且”的意思,前後條件需都成立
-o或|| :邏輯或,“或者”的意思,只需前後條件中一個成立
! :邏輯否
a=5
[ $a -ne 1 ] && [ $a != 2 ] 等同於 [ $a -ne 1 -a $a != 2 ]
#&&、||操作符能夠正常存在於[[ ]]條件判斷結構中,但是如果出現在[ ]結構中的話,會報錯
[[ $a != 1 && $a != 2 ]]
[[ 2 lt 3 ]] && echo true || false
[[ 2 ge 3 ]] && echo true || false
vim pinghost.sh
#!/bin/bash
ping -c 3 -i 0.5 -W 2 $1 &> /dev/null && echo "$1 online" || echo "$1 off"
-c:傳送包的個數
-i:傳送包的間隔時間
-W:超時時間
-w:多少秒後停止 ping 命令操作
if語句
單分支 if 語句
if 條件測試操作
then
命令序列
fi
【1】
if [ 3 -gt 2 ]
then
echo “ok”
fi
【2】
if [ 3 -gt 2 ]; then echo “ok”; fi
【3】
[ 3 -gt 2 ] && echo “ok”
雙分支 if 語句
if 條件測試操作
then
命令序列 1
else
命令序列 2
fi
vim pinghost1.sh
#!/bin/bash
ping -c 3 -i 0.5 -W 2 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo "$1 online"
else
echo "$1 off"
fi
多分支 if 語句
if 條件測試操作 1
then
命令序列 1
elif 條件測試操作 2
then
命令序列 2
[else]
[命令序列 3]
fi
vim score.sh
#!/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
case 語句
case 變數值 in
模式 1)
命令序列 1
;;
模式 2)
命令序列 2
;;
……
- )
預設命令序列
esac
vim score1.sh
#!/bin/bash
read -p "請輸入您的分數(0-100): " score
[[ $score -ge 85 && $score -le 100 ]] && a="great"
[[ $score -ge 70 && $score -lt 85 ]] && a="standard"
[[ $score -ge 0 && $score -lt 70 ]] && a="false"
case $score in
great)
echo "$score 分,優秀!"
;;
standard)
echo "$score 分,合格!"
;;
false)
echo "$score 分,不合格!"
;;
*)
echo "輸入有誤!"
esac
vim /etc/init.d/firewalld
case $1 in
start)
systemctl start firewalld.service
;;
stop)
systemctl stop firewalld.service
;;
restart)
$0 stop
$0 start
;;
status)
systemctl status firewalld.service
;;
* )
echo "用法: $0 {start|stop|status|restart}"
esac
相關文章
- MySQL條件判斷IF,CASE,IFNULL語句詳解MySqlNull
- Go的條件判斷語句的使用Go
- Python中if條件判斷語句怎麼用?Python
- makefile--if條件判斷語句的語法與使用
- 最簡潔的python條件判斷語句寫法Python
- Java中的條件判斷語句-動力節點Java
- python基礎之如何用if語句判斷多個條件?Python
- python兩種簡潔的條件判斷語句寫法Python
- 『忘了再學』Shell流程控制 — 33、if條件判斷語句(一)
- 『忘了再學』Shell流程控制 — 34、if條件判斷語句(二)
- 判斷語句
- 前端筆記之JavaScript(三)關於條件判斷語句、迴圈語句那點事前端筆記JavaScript
- C語言中迴圈語句while 中判斷條件出現 || 和 && 的區別C語言While
- C++ 條件與 If 語句:掌握邏輯判斷與流程控制精髓C++
- 條件語句
- C 判斷語句
- 012 判斷語句
- Grovvy-條件判斷
- 六、Vue條件判斷Vue
- 前端筆記之JavaScript(二)關於運算子&初識條件判斷語句前端筆記JavaScript
- JS的判斷語句:判斷、迴圈JS
- 『忘了再學』Shell流程控制 — 35、多分支case條件語句
- GO 條件語句Go
- javaScript條件語句JavaScript
- python之判斷語句Python
- 判斷語句的使用
- exercise001_條件判斷
- 04.條件語句
- Go:條件控制語句Go
- Python if else條件語句Python
- Python入門 - 判斷語句Python
- 11.9 python之判斷語句Python
- Java 判斷語句 - if…else/switchJava
- 【SHELL】Shell中的條件判斷
- python條件判斷與迴圈Python
- Laravel 5 判斷條件是否存在Laravel
- mysql 插入時帶判斷條件MySql
- python中if條件語句對於布林值和非布林值的判斷結果Python