1. 程式人生 > 其它 >陣列以及關聯陣列的宣告和賦值

陣列以及關聯陣列的宣告和賦值

 

 

一,基本陣列

陣列可以讓使用者一次賦予多個值,讀取的時候只需要通過索引呼叫就可以方便讀出

 

1,陣列語法:

  陣列名稱=(元素1 元素2 元素3……)

2,陣列讀出

  ${陣列名稱[索引]}

  索引預設是元素在陣列中的排隊編號,預設從第一個0開始

 

3,陣列賦值

 

(1)一次附多個值

arry0[0]='tom'

arry0[1]='cat'

 

(2)一次附多個值

array=(var1 var2 var3 var4)
array1=(`cat /etc/passwd`)			//將檔案中每一行賦值給array1陣列
array2=(`ls /root`)
array3=(harry amy jack "Miss zhang")
array4=(1 2 3 4 "hello world" [10]=linux)

 

 

4,檢視陣列

declare -a

 

[root@CentOs shell]# declare -a
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='()'
declare -ar BASH_REMATCH='()'
declare -a BASH_SOURCE='()'
declare -ar BASH_VERSINFO='([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='()'
declare -a GROUPS='()'
declare -a PIPESTATUS='([0]="0")'
[root@CentOs shell]#

 

5,訪問陣列元素

 

${array[i]}  i表示元素的索引
使用@ * 可以獲取陣列中的所有元素:

echo ${array[0]}            獲取第一個元素
echo ${array[*]}			 獲取數組裡的所有元素
echo ${#array[*]}			 獲取數組裡所有元素個數
echo ${!array[@]}    	      獲取陣列元素的索引
echo ${array[@]:1:2}            訪問指定的元素;1代表從索引為1的元素開始獲取;2代表獲取後面幾個元素

 

 

 

二,關聯陣列

 

關聯陣列允許使用者自定義陣列的索引,使用起來更加高效,方便!

 

1,申明關聯陣列

申明方式: declare -A 陣列名稱

首先宣告關聯陣列
declare -A asso_array1
declare -A asso_array2
declare -A asso_array3

 

2,關聯陣列賦值

 

  • 一次賦一個值
陣列名[索引]=變數值
[root@zutuanxue ~]# asso_array1[linux]=one
[root@zutuanxue ~]# asso_array1[java]=two
[root@zutuanxue ~]# asso_array1[php]=three
  • 一次附多個值
[root@zutuanxue ~]# asso_array2=([name1]=harry [name2]=jack [name3]=amy [name4]="Miss zhang")
  • 檢視關聯陣列
[root@zutuanxue ~]# declare -A
declare -A asso_array1='([php]="three" [java]="two" [linux]="one" )'
declare -A asso_array2='([name3]="amy" [name2]="jack" [name1]="harry" [name4]="Miss zhang" )'

 

例如:

 

 

 

[root@CentOs shell]# bash test
name=heitui
[root@CentOs shell]#