1. 程式人生 > >可惡的bash腳本的執行結

可惡的bash腳本的執行結

linux if 和for

bash之if(選擇執行結構)

特點:根據條件的邏輯判斷結果選擇執行的語句內容

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腳本的執行結