1. 程式人生 > >16、bash編程之數組介紹

16、bash編程之數組介紹

ima aos 同時 ech 格式 使用 示例 空格 但是

1、程序構成:

主要由指令和數據構成,數據可以是變量、文件、數組


2、數組介紹:

變量:存儲單個元素的內存空間

數組:存儲多個元素的連續的內存空間


3、數組的特點:

數組名:整個數組只有一個名字

數組索引:元素編號從“0”開始,數組名[索引]


註意:對於bash-4及之後的版本,支持自定義的索引格式,而不僅僅是0,1,2....等等數字格式。同時數組可以不事先聲明,可以直接使用,但是如果不聲明,它會把多個字符串的變量當做一個變量,因此使用數組前,應先聲明數組。


4、聲明數組:(有兩種方式)

方式一:declare -a NAME //聲明索引數組,用0,1,2,3....表示各元素

方式二:declare -A NAME //聲明關聯數組,自定義索引格式


5、給數組中元素賦值:

①、一次只賦值一個元素:

格式:ARRAY_NAME[INDEX]=value

示例:

[root@localhost ~]# declare -a animal

[root@localhost ~]# animal[0]=pig

[root@localhost ~]# animal[1]=sheep

[root@localhost ~]# echo $animal //引用第“0”個元素

pig

[root@localhost ~]# echo ${animal[1]}

pig[1]

[root@localhost ~]#

②、一次賦值全部元素:

格式:ARRAY_NAME=("VALUE1" "VALUE2" "VALUE3" ...) //必須以空格鍵隔開各元素值

示例:

[root@localhost ~]# weekdays=("monday" "tuesday" "wedsday")

[root@localhost ~]# echo ${weekdays[2]}

wedsday

[root@localhost ~]#

③、只賦值特定元素

格式:ARRAY_NAME=([0]="VAL0" [1]="VAL1" [3]="VAL3") //可以不連續賦值,此種被稱為稀疏數組。

示例:

[root@localhost ~]# cigrate=([0]="najing" [1]="xiaosu" [4]="yuxi")

[root@localhost ~]# echo ${cigrate[0]}

najing

[root@localhost ~]# echo ${cigrate[1]}

xiaosu

[root@localhost ~]# echo ${cigrate[2]}


[root@localhost ~]# echo ${cigrate[3]}


[root@localhost ~]# echo ${cigrate[4]}

yuxi

[root@localhost ~]#


註意:bash支持稀疏格式的數組。



5、數組元素引用:

${ARRAY_NAME[INDEX]} //必須加{ },因為不加,則只會引用ARRAY_NAME,而不是整個數組元素。






16、bash編程之數組介紹