這篇文章介紹下BASH shell中的條件相關(guān)的命令,包括:if, case, while, until, for, break, continue。
1. If語句
if語句用于在順序執(zhí)行語句的流程中執(zhí)行條件任務(wù)。If語句通常用于在Bash腳本中做出決定。它們根據(jù)可能設(shè)置的條件來決定是否運行一段代碼。if語句的語法格式有幾種,如下:
# 1. if語句基本格式:
# 注意:觀察第一行中使用的空格,在第一行末尾使用分號。兩者都必須使
# 用,if條件語句以fi結(jié)尾
if [ condition ];
then
statements
fi
# 2. if-else語法格式:
if [ condition ];
then
< if block commands >
else
< else block commands >
fi
# 3. else-if語法格式:
if [ condition ];
then
< commands >
elif [ condition ];
then
< commands >
else
< commands >
fi
if語句condition中可以包含一些操作符去處理更復(fù)雜的場景。以下是一些最常用的操作符:

2. case語句
Bash case語句是具有許多ELIF元素的IF-THEN-ELSE的最簡單形式。使用case語句使bash腳本更具可讀性,并且更易于維護。它通常用于簡化具有多種不同選擇的復(fù)雜條件。case語句的語法如下:
case expression in
pattern_1)
statements
;;
pattern_2)
statements
;;
pattern_3|pattern_4|pattern_5)
statements
;;
pattern-n)
statements
;;
*)
statements
;;
esac
# 包含語句的模式稱為子句,并且必須以雙分號(;;)終止
# 星號(*)用作定義默認(rèn)情況的最終模式。當(dāng)用作最后一種情況時,它用作默認(rèn)情況
首先,case語句擴展表達(dá)式并嘗試與每個包含的模式匹配。找到匹配項后,將執(zhí)行所有鏈接的語句,直到雙分號(;;)為止。在第一個匹配項之后,case以最后執(zhí)行的語句的退出狀態(tài)終止。
如果沒有匹配的模式,則case的退出狀態(tài)為零。
否則,返回狀態(tài)是已執(zhí)行語句的退出狀態(tài)。如果使用默認(rèn)的星號( * )模式,則在沒有匹配模式的情況下將執(zhí)行它。
3. for循環(huán)
bash shell腳本也支持for循環(huán)以執(zhí)行重復(fù)性任務(wù)。它有助于在字符串中的一系列單詞或數(shù)組中的元素上迭代一組特定的語句。例如,可以多次運行UNIX命令(或任務(wù)),也可以僅使用for循環(huán)讀取和處理命令列表。
可以通過兩種方式在bash腳本上應(yīng)用for循環(huán)。一種方法是for-in,另一種方法是C語言語法。for循環(huán)的語法:
# 方法1,list可以包含數(shù)字或字符串等,以空格分隔
for variable in list
do
commands
done
# 方法2
for (( expression1; expression2; expression3 ))
do
commands
done
當(dāng)bash的三個表達(dá)式中沒有“開始,條件和增量”循環(huán)時,它將變?yōu)闊o限循環(huán)。要終止Bash中的無限循環(huán),可以按Ctrl + C。
4. while循環(huán)
while循環(huán)可以定義為控制流語句,只要所應(yīng)用的條件為真,該語句就允許重復(fù)執(zhí)行給定的命令集。例如,可以運行多次echo命令,也可以僅逐行讀取文本文件,然后使用Bash中的while循環(huán)處理結(jié)果。while循環(huán)格式:
while [ expressions ];
do
commands;
multiple commands;
done
# expressions可以是單條件或多條件
5. until循環(huán)
until循環(huán)用于根據(jù)表達(dá)式的布爾結(jié)果重復(fù)執(zhí)行一組命令。僅在表達(dá)式的值為真之前執(zhí)行命令集。因此當(dāng)表達(dá)式的計算結(jié)果為false時,將迭代執(zhí)行一組命令。當(dāng)表達(dá)式首次為真時,循環(huán)終止。until循環(huán)與while循環(huán)相似,但是概念相反。until循環(huán)的語法格式:
until [ expressions ];
do
command1
command2
. . .
. . .
commandN
done
6. break和continue
可以在循環(huán)中使用break語句來終止循環(huán)??梢栽谘h(huán)中使用continue語句來跳過特定條件下的特定語句。它告訴Bash停止執(zhí)行循環(huán)的特定迭代并處理下一個迭代。
-
C語言
+關(guān)注
關(guān)注
183文章
7646瀏覽量
146201 -
Shell
+關(guān)注
關(guān)注
1文章
375瀏覽量
25493 -
for循環(huán)
+關(guān)注
關(guān)注
0文章
61瀏覽量
2898 -
bash終端
+關(guān)注
關(guān)注
0文章
7瀏覽量
2102
發(fā)布評論請先 登錄
Gemini CLI 中轉(zhuǎn)站配置使用教程
Shell歷史命令history用法
【瑞薩RA6E2】1.使用串口shell點亮LED燈
e203仿真報Syntax error: \"&\"unexpected錯誤的原因
【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項目-實現(xiàn)開機起動
【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈按鈕項目
【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-燈閃
關(guān)于系統(tǒng)鏈接腳本的介紹
飛凌嵌入式ElfBoard-Linux系統(tǒng)基礎(chǔ)入門-其它shell命令
shell基本介紹及常用命令之shell基本介紹
termux輸出Hello termux
【創(chuàng)龍TL3562-MiniEVM開發(fā)板試用體驗】--開發(fā)板外設(shè)與接口測試
【RA-Eco-RA6M4開發(fā)板評測】移植shell實現(xiàn)命令交互
Shell腳本入門指南
BASH shell腳本篇—條件命令
評論