函数结果 赋予数组
一个数组可以交给函数加工之后在赋予给一个新的数组
场景:用户获赠流量包(每人增加5G),结果运算
**1 通过函数输出到数组**
#!/bin/bash
num=(1 2 3)
array(){
#local定义变量仅在函数中有效。
local j
#设置循环的次数,等于索引总数。
for i in $*
do
#定义不同的值乘以5.注意调取值的时候使用的是索引。
outarray[j++]=$[$i+5]
done
#输出新的数组。
echo "${outarray[*]}"
}
result=`array ${num[*]}`
echo ${result[*]}
关于i++递增的问题
[root@localhost ~]# aaa[i++]=111
[root@localhost ~]# aaa[i++]=222
[root@localhost ~]# aaa[i++]=333
[root@localhost ~]# echo ${!aaa[@]}
0 1 2
[root@localhost ~]# echo ${aaa[@]}
111 222 333
[root@localhost ~]# ccc[++k]=111
[root@localhost ~]# ccc[++k]=222
[root@localhost ~]# ccc[++k]=333
[root@localhost ~]# echo ${!ccc[@]}
1 2 3
[root@localhost ~]# echo ${ccc[@]}
111 222 333
[root@localhost ~]# aaa[1]=3
[root@localhost ~]# echo ${aaa[@]}
3
[root@localhost ~]# aaa[1]=$[3*5]
[root@localhost ~]# echo ${aaa[@]}
15
[root@localhost ~]# aaa[i++]=20
[root@localhost ~]# aaa[i++]=25
[root@localhost ~]# aaa[i++]=30
[root@localhost ~]# echo ${aaa[@]}
15 20 25 30
2 测试脚本成功。
[root@localhost ~]# bash function_array.sh
5 10 15
总结:函数不仅可以从数组中调取值,还可以赋予数组值。