陣列以及關聯陣列的宣告和賦值
一,基本陣列
陣列可以讓使用者一次賦予多個值,讀取的時候只需要通過索引呼叫就可以方便讀出
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]#