目录
一、向函数传数组参数
如果将数组作为函数的参数,函数只会取数组变量的第一个值
1、格式
#!/bin/bash
#数组在函数中传参
test() {
echo "函数接收到的参数列表为:$@"
newarr=($*)
echo "新数组的值为:${newarr[@]}"
}
##########main#########
arr=(10 20 30 40 50 60)
echo "原始数组的值为:${arr[@]}"
test $arr
2、输出结果
3、如何改变才能将数组正常在函数中传参呢?
可以将数组拆分成列表传参到函数中,然后在函数中重新组成一个新的数组
3.1 格式
#!/bin/bash
#数组在函数中传参
test() {
echo "函数接收到的参数列表为:$@"
newarr=($*)
echo "新数组的值为:${newarr[@]}"
}
##########main#########
arr=(10 20 30 40 50 60)
echo "原始数组的值为:${arr[@]}"
test ${arr[*]}
3.2 输出结果
二、从函数返回数组
1、实例操作:通过函数将数组中的所有元素值*2,并再以新数组形式输出
1.1 格式
#!/bin/bash
#从函数返回数组,并将数组中元素值*2,再以新数组形式输出
test () {
newarr=(`echo $@`)
length=${#newarr[@]}
for ((i=0; i<$length; i++))
do
newarr[$i]=$[${newarr[$i]} * 2]
done
echo ${newarr[@]}
}
#########main#############
array=(10 20 30 40 50 60)
echo "原始数组的值为:${array[@]}"
result=(`test ${array[@]}`)
echo "新数组的值为:${result[@]}"