16、bash編程之數組介紹
主要由指令和數據構成,數據可以是變量、文件、數組
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編程之數組介紹