写在前面
看一下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[@]}