03.shell數組
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數組