可惡的bash腳本的執行結
特點:根據條件的邏輯判斷結果選擇執行的語句內容
if的單分支結構
if 命令 ;then 命令 ;fi
結構分析:首先 判斷if後命令的狀態返回值,如果為真(狀態返回值為0),則執行then後面的命令,fi(結束if的命令)
註意:一行中若有多個命令存在需要用分號分開
若不習慣使用分號可書寫為
if 命令
then 命令
fi
if的雙分支結構
if 命令 ;then 命令;else命令;fi
結構分析:首先判斷if後命令的狀態返回值,如果為真(狀態返回值為0),則執行then後面的命令,否則執行else後面的命令;fi結束if語句
建議書寫格式:
if 命令 ;then
命令
else
命令
fi
註意縮進:以便於在查看是能迅速理解表達內容
if的多分支結構
if 命令;then 命令;elif 命令;then命令;elif命令;thenml;.....else 命令;fi
結構分析:判斷if後命令的狀態返回值,若為真則執行then後面的命令,
若為假,則判斷第一個elif後命令的狀態返回值;若為真則執行該elif後的then命令
若為假,則判斷下一個elif後命令的狀態返回值,若為真則執行該elif後的then命令
.........
當if以及所有的elif後的所有的命令的狀態返回值均為假時,執行else後的命令
fi
建議書寫格式:
if 命令 ;then
命令
elif 命令 ;then
命令
elif 命令 ;then
命令
......
else
命令
fi
註意if語句可以嵌套;
如:if命令;then
if 命令;then
if命令;then
......
else
命令
fi
else
命令
fi
else
命令
fi
bash之for
循環執行結構:
格式:for 參數變量 in 變量取值表 ;do
循環體
done
for循環需要遍歷的列表;可以通過以下方式生成列表
1.直接給出列表
[root@localhost ~]# for i in 1 2 3;do echo -e "$i"; done 1 2 3
2.純整數列表
①:花括號展開
{FISTNUM..LASTNUM} :FISTNUME-LASTNUM之間的包括其在內的數值
[root@localhost ~]# for i in {1..9};do echo "$i"; done 1 2 3 4 5 6 7 8 9
{FIST,SECOND,THID,...,LAST}:參數列表
[root@localhost ~]# for i in {1,3,5,7,9};do echo "$i"; done 1 3 5 7 9
②:seq命令
seq [OPTION]...LASR 列表為1到LASR的所有整數
[root@localhost ~]# for i in $(seq 5);do echo -e "$i"; done 1 2 3 4 5
seq [option]...FIRST LAST 列表為 FIRST到LAST 之間所有的整數
[root@localhost ~]# for i in $(seq 5 9);do echo -e "$i"; done 5 6 7 8 9
seq [OPTION]...FIRST n LAST 列表為 FIRST 到LAST 以n為公差的所有整數
[root@localhost ~]# for i in $(seq 5 2 9);do echo -e "$i"; done 5 7 9
註意:seq是命令在引用時應該添加 $()
③:花括號展開
{FIST..LAST} :從FIST 到 LAST之間由規律的字符列表
[root@localhost ~]# for i in {a..f};do echo -e "$i"; done a b c d e f
④:命令的執行結果:
ls /etc
grep /path/to/somefile
⑤:通配符
[root@localhost ~]# for i in /mnt/*;do echo -e "$i"; done /mnt/a.txt /mnt/b.txt /mnt/c.txt
⑥:某些特殊變量的值
$*,$@
可惡的bash腳本的執行結