一 陣列介紹
1.什麼是陣列
陣列就是一系列元素的集合,乙個陣列內可以存放多個元素
2.為何要用陣列?我們可以用陣列將多個元素彙總到一起,避免單獨定義的麻煩
二 陣列的使用
1.陣列的定義
# 方式一:array=(元素1 元素2 元素3)
array=(egon 18 male)
# 方式二:
array=([key1]=value1 [key2]=value2 [key3]=value3) array=([0]=111 [1]="two" [2]=333)
# 方式三:依次賦值
array_new[0]=111
3array_new[1]=222
array_new[2]="third"
# 方式四:利用執行命令的結果設定陣列元素:array=($(命令))
或者 array=(`命令`) 該方式會將命令的結果以空格為分隔符切成多個元素然後賦值給陣列
[root@aliyun ~]# ls /test a.txt b.txt
[root@aliyun ~]# array3=(`ls /test`)
[root@aliyun ~]# declare -a |grep array3
declare -a array3='([0]="a.txt" [1]="b.txt")'
# ps:檢視宣告過的陣列 declare -a
1.2 訪問陣列內元素[root@aliyun ~]# array=(egon 18 male)
# 1、按照索引訪問陣列內指定位置的元素
[root@aliyun ~]# echo $
egon [root@aliyun ~]# echo $
18[root@aliyun ~]# echo $
male
[root@aliyun ~]# echo $ # 支援負向索引
male
# 2、訪問陣列內全部元素資訊
[root@aliyun ~]# echo $
egon 18 male
[root@aliyun ~]# echo $
egon 18 male
# 3、獲取陣列元素的長度
[root@aliyun ~]# echo $
3[root@aliyun ~]# echo $
3
1.3 修改/新增陣列元素[root@aliyun ~]# array=(egon 18 male)
[root@aliyun ~]# array[0]="egon" # 修改
[root@aliyun ~]# array[3]="it" # 新增
[root@aliyun ~]# declare -a |grep array
declare -a array='([0]="egon" [1]="18" [2]="male" [3]="it")'
1.4 刪除陣列元素[root@aliyun ~]# unset array[0]
[root@aliyun ~]# echo $
18 male it
[root@aliyun ~]# declare -a |grep array
declare -a array='([1]="18" [2]="male" [3]="it")'
[root@aliyun ~]# unset array[2]
[root@aliyun ~]# declare -a |grep array
declare -a array='([1]="18" [3]="it")'
[root@aliyun ~]# unset array # 刪除整個陣列
[root@aliyun ~]# echo $
[root@aliyun ~]#
1.5陣列內元素的擷取[root@aliyun ~]# array=(egon 18 male it 1.80)
[root@aliyun ~]# echo $ # 從索引1開始,一直到最後
18 male it 1.80
[root@aliyun ~]# echo $ # 從索引1開始,訪問3個元素
18 male it
[root@aliyun ~]# array=(one two three four five fire)
[root@aliyun ~]# echo $
two three four five fire
[root@aliyun ~]# echo $
one two three four
1.66 陣列內容的替換[root@aliyun ~]# array=(one two three four five fire)
[root@aliyun ~]# echo $
one two three four abc fire
[root@aliyun ~]# echo $
one two three four abc abc
三 關聯陣列陣列分為兩種
普通陣列:只能使用整數作為陣列索引,我們前面介紹的都是普通陣列
關聯陣列:可以使用字串作為陣列索引,需要用declare -a宣告
宣告關聯陣列
[root@aliyun ~]# declare -a info
[root@aliyun ~]# info["name"]="egon"
[root@aliyun ~]# info["age"]=18
[root@aliyun ~]# info["gender"]="male"
[root@aliyun ~]#
[root@aliyun ~]# declare -a |grep info
declare -a info='([gender]="male" [name]="egon" [age]="18" )'
[root@aliyun ~]#
[root@aliyun ~]# echo $
male egon 18
[root@aliyun ~]#
[root@aliyun ~]# echo $
egon
四 遍歷陣列方法一: 利用獲取所有資訊進行遍歷 (適用於普通陣列與關聯陣列)
# 例1
declare -a array
array=(["name"]="egon" ["age"]=18 ["gender"]="male")
for item in $
do echo $item
done
# 例2
array=("egon" 18 "male")
for item in $
do echo $item
done
方法二: 通過陣列元數的索引進行遍歷(適用於普通陣列與關聯陣列)
# 例1
declare -a array
array=(["name"]="egon" ["age"]=18 ["gender"]="male")
for i in $ # echo $ # 獲取的是key資訊:name age gender
do echo "$i:$"
done
# 例2
array=("egon" 18 "male")
for i in $ # echo $ 直接獲取所有元素的索引資訊
do echo $i echo $
done
方法三:根據陣列長度資訊進行遍歷,(適用於普通陣列)
array=("egon" 18 "male")
for ((i=0;i<$;i++))
do echo "$i:$"
done
shell陣列用法
declare a arr 宣告乙個陣列變數 arr 0 0 arr 1 1 declare a name mike jim declare宣告 name tom jim 也可以直接建立陣列 b 1 23 小括號空格法 c 1 2 3 引號空格法 d 0 1 d 1 2 直接賦值echo 列印乙個元...
Swift陣列詳細用法解析
一 說明 swift陣列中的型別必須一致,這一點與oc不同 陣列初始化 var numbers 0,1,2,3,4,5 var vowels a e i o u 陣列的型別 int 或者 array var numbers int 0,1,2,3,4,5 var numbers array 0,1,...
Shell指令碼(詳細)
定義乙個變數例子 name xintiaobao number 100注意 1,變數名和等號之間不能有空格 2,首個字元必須為字母 a z,a z 3,中間不能有空格,可以使用下劃線 4,不能使用標點符號。5,不能使用bash裡的關鍵字 使用變數 只需要在乙個定義過的變數前面加上美元符號 就可以了,...