1. 程式人生 > >03.shell數組

03.shell數組

運算 等於 編號 不支持 while 連續 引號 left 空格

1.Shell 數組

bash支持一維數組(不支持多維數組),並且沒有限定數組的大小。

類似與C語言,數組元素的下標由0開始編號。獲取數組中的元素要利用下標,下標可以是整數或算術表達式,其值應大於或等於0。

1.1定義數組

在Shell中,用括號來表示數組,數組元素用"空格"符號分割開。定義數組的一般形式為:

數組名=(值1 值2 ... 值n)

例如:array_name=(value0 value1 value2 value3)

array_name=( value0 value1 value2 value3 )

還可以單獨定義數組的各個分量:

array_name[0]=value0 array_name[1]=value1 array_name[n]=valuen

可以不使用連續的下標,而且下標的範圍沒有限制。

1.2讀取數組

讀取數組元素值的一般格式是:

${數組名[下標]}

例如:valuen=${array_name[n]}

使用@符號可以獲取數組中的所有元素,例如:echo ${array_name[@]}

1.3獲取數組的長度

獲取數組長度的方法與獲取字符串長度的方法相同,例如:

# 取得數組元素的個數 length=${#array_name[@]}

# 或者 length=${#array_name[*]} # 取得數組單個元素的長度 lengthn=${#array_name[n]}

1.4遍歷數組

let:進行算數運算操作

#!/bin/bash my_arry=(a b "c","d" abc) echo "-------FOR循環遍歷輸出數組--------" for i in ${my_arry[@]}; do echo $i done echo "-------::::WHILE循環輸出 使用 let i++ 自增:::::---------" j=0 while [ $j -lt ${#my_arry[@]} ] do echo ${my_arry[$j]} let j++ done echo "--------:::WHILE循環輸出 使用 let "n++ "自增: 多了雙引號,其實不用也可以:::---------" n=0 while [ $n -lt ${#my_arry[@]} ] do echo ${my_arry[$n]} let "n++" done echo "---------::::WHILE循環輸出 使用 let m+=1 自增,這種寫法其他編程中也常用::::----------" m=0 while [ $m -lt ${#my_arry[@]} ] do echo ${my_arry[$m]} let m+=1 done echo "-------::WHILE循環輸出 使用 a=$[$a+1] 自增,個人覺得這種寫法比較麻煩::::----------" a=0 while [ $a -lt ${#my_arry[@]} ] do echo ${my_arry[$a]} a=$[$a+1] done

03.shell數組