我正在尝试将我的数组作为参数传递给我的shell脚本中的函数。我能够处理数组的单个元素但是当我尝试查找数组的长度时,它只显示1.我的脚本是:
ar=(8 2 3 4 5 6 7)
test() {
sum=0
ref=$1[@]
echo ${#ref[@]}
for i in ${!ref}
do
sum=`expr $sum + $i`
done
echo "sum is: $sum"
}
test ar
如果我这样做
echo ${#ref}
它给了我5个结果。不知道这个结果的原因。
有什么方法可以找到解决方法吗?
答案 0 :(得分:1)
ts () {
set $1[*]
ref=(${!1})
echo ${#ref[*]}
for i in ${ref[*]}
do
(( sm += i ))
done
echo sum is: $sm
}
ar=(8 2 3 4 5 6 7)
ts ar
输出
7 sum is: 35