1. if語(yǔ)句
1.1 單分支
if [ 條件 ]
then
命令
fi
說(shuō)明:如果滿足條件,則執(zhí)行命令,否則不執(zhí)行該if語(yǔ)句。
1.2 雙分支
if [ 條件 ]
then
命令1
else
命令2
fi
如果滿足條件,則執(zhí)行命令1,否則執(zhí)行命令2。
1.3 多分支
if [ 條件1 ]
then
命令1
elif [ 條件2 ]
命令2
……
else
命令n
fi
- 如果滿足條件1,則執(zhí)行命令1;如果滿足條件2,則執(zhí)行命令2;否則執(zhí)行命令n。
elif可以寫(xiě)多個(gè)
2. for循環(huán)
2.1 shell風(fēng)格
2.1.1 語(yǔ)法
for 變量名 in 列表
do
循環(huán)體
done
in后邊寫(xiě)一個(gè)列表即可,不必加括號(hào)、引號(hào)之類。方法如下:
2.1.2 直接列出列表內(nèi)容
for i in 1 2 3
或
for i in [1,2,3]
2.1.3 連續(xù)的列表
for i in [1..10]
2.1.4 執(zhí)行命令創(chuàng)建的列表
- 語(yǔ)法
for i in $(命令)
- 利用seq命令
for i in $(seq 200) #從1~200
for i in $(seq 100 200) #從100~200
- 利用cat/ls等命令
for i in $(cat 文件名)
2.2 C語(yǔ)言風(fēng)格
for ((i=0;i<=100;i++))
do
循環(huán)體
done
2.3 命令行執(zhí)行for循環(huán)
- 語(yǔ)法
# for 條件;do 循環(huán)體;done
說(shuō)明:為了方便,可以把循環(huán)題用括號(hào)擴(kuò)起來(lái)。
條件
shell風(fēng)格和C語(yǔ)言風(fēng)格都可用示例
# for((i=0;i<=10;i++));do echo $i;done
# for i in $(seq 10);do echo $i ;done
# for i in `cat 1.txt`;do echo $i;done
2.4 awk的for循環(huán)
說(shuō)明:每行打印10遍
# awk '{for(i=0;i<=10;i++){print $0}}' 1.txt
3. while循環(huán)
3.1 語(yǔ)法
while 條件
do
循環(huán)體
done
3.2 示例
while [ $i -gt 10 ]
while 0
4. case語(yǔ)句
4.1 語(yǔ)法
case $變量 in
"值1")
命令1-1;
命令1-2;;
"值2")
命令2;;
……
*)
命令n;;
esac
4.2 值與正則
- 值表示一個(gè)連續(xù)范圍:
[1-9] - 值表示連個(gè)其中一個(gè):
A|B
case i in
"[1-5]")
echo 'cat';;
"6|7")
echo 'dog';;
……
*)
命令n;;
esac
5. 循環(huán)控制
exit
退出整個(gè)程序break
結(jié)束當(dāng)前循環(huán),跳出本層循環(huán)break1
跳出一層循環(huán),break2 跳出兩層循環(huán)。continue
跳出本循環(huán)剩余代碼next下一行
