Shell中陣列的操作
阿新 • • 發佈:2018-11-26
寫在前面
看一下Shell中陣列的幾種操作:定義、遍歷、修改、刪除、引數傳遞操作
定義
Shell中對於陣列的定義直接使用(),元素之間使用空格隔開即可
array=(1 2 3 4 5)
array=(abc def gh)
取得陣列的值:取出所有的數值以及取出某個位置上的數值
echo ${array[@]}
echo ${array[*]}
echo $array[0]
獲取長度
echo ${#array[@]}
echo ${#array[*]}
如果陣列作為引數傳遞到函式中,還可以使用:
echo $#
修改
直接修改某點上的數值,如果下標超出陣列長度,則修改的數字會插入到陣列的最後
array[2]=4
刪除
分別為刪除某一節點的數值,以及刪除整個陣列
unset array[2]
unset array
陣列遍歷
count=0
for value in ${array[@]}
do
echo "the $count num is: $value"
$count=$[ $count + 1 ]
done
作為引數
如果作為引數傳遞到函式中,那麼只能夠由#@來獲取引數列表,在函式中將這些重組為陣列,實現為:
function fun { local newarray=($(echo #@)) for value in ${newarray[@]} do echo $value done } array=(1 2 3 4 5) fun ${array[@]}
在newarray=($(echo #@))中,最外層括號就表示將輸出的引數中心轉換為陣列
如果想要將陣列來做返回值呢?
那麼就使用Shell中輸出作為返回值即可,在函式外將輸出轉換為陣列,實現為:
function fun {
local array=(5 6 7 8)
echo ${array[@]}
}
rearray=($(fun))
echo ${rearray[@]}