Shell數組:Shell數組定義以及獲取數組元素
和其他編程語言一樣,shell 也支持數組。數組(Array)是若干數據的集合,其中的每一份數據都稱為元素(Element)。
Shell 并且沒有限制數組的大小,理論上可以存放無限量的數據。和 C++、Java、C# 等類似,Shell 數組元素的下標也是從 0 開始計數。
獲取數組中的元素要使用下標
遺憾的是,常用的 Bash Shell 只支持一維數組,不支持多維數組。
下面是一個定義數組的實例:
Shell 是弱類型的,它并不要求所有數組元素的類型必須相同,例如:
Shell 數組的長度不是固定的,定義之后還可以增加元素。例如,對于上面的 nums 數組,它的長度是 6,使用下面的代碼會在最后增加一個元素,使其長度擴展到 7:
此外,你也無需逐個元素地給數組賦值,下面的代碼就是只給特定元素賦值:
使用
完整的演示:
29 100 13 8 91 44
29 100 13 8 91 44 66
91
Shell 并且沒有限制數組的大小,理論上可以存放無限量的數據。和 C++、Java、C# 等類似,Shell 數組元素的下標也是從 0 開始計數。
獲取數組中的元素要使用下標
[ ]
,下標可以是一個整數,也可以是一個結果為整數的表達式;當然,下標必須大于等于 0。遺憾的是,常用的 Bash Shell 只支持一維數組,不支持多維數組。
Shell 數組的定義
在 Shell 中,用括號( )
來表示數組,數組元素之間用空格來分隔。由此,定義數組的一般形式為:
array_name=(ele1 ele2 ele3 ... elen)
注意,賦值號=
兩邊不能有空格,必須緊挨著數組名和數組元素。下面是一個定義數組的實例:
nums=(29 100 13 8 91 44)
Shell 是弱類型的,它并不要求所有數組元素的類型必須相同,例如:
arr=(20 56 "http://c.biancheng.net/shell/")第三個元素就是一個“異類”,前面兩個元素都是整數,而第三個元素是字符串。
Shell 數組的長度不是固定的,定義之后還可以增加元素。例如,對于上面的 nums 數組,它的長度是 6,使用下面的代碼會在最后增加一個元素,使其長度擴展到 7:
nums[6]=88
此外,你也無需逐個元素地給數組賦值,下面的代碼就是只給特定元素賦值:
ages=([3]=24 [5]=19 [10]=12)以上代碼就只給第 3、5、10 個元素賦值,所以數組長度是 3。
獲取數組元素
獲取數組元素的值,一般使用下面的格式:${array_name[index]}
其中,array_name 是數組名,index 是下標。例如:n=${nums[2]}表示獲取 nums 數組的第二個元素,然后賦值給變量 n。再如:
echo ${nums[3]}表示輸出 nums 數組的第 3 個元素。
使用
@
或*
可以獲取數組中的所有元素,例如:
${nums[*]} ${nums[@]}兩者都可以得到 nums 數組的所有元素。
完整的演示:
#!/bin/bash nums=(29 100 13 8 91 44) echo ${nums[@]} #輸出所有數組元素 nums[10]=66 #給第10個元素賦值(此時會增加數組長度) echo ${nums[*]} #輸出所有數組元素 echo ${nums[4]} #輸出第4個元素運行結果:
29 100 13 8 91 44
29 100 13 8 91 44 66
91
beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。
通俗易懂,深入淺出,一篇文章只講一個知識點。
文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。
文章不涉及代碼,不燒腦細胞,人人都可以學習。
當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!