Shell中如何将多个数组作为函数的参数

两个数组a=(1 2 3), b=(a b c)
现在有个函数fun(), a b 作为函数的参数, fun “a” “b”
fun()
{
local a=($1)
local b=($2)
ehco ${a[@]}
echo ${b[@]}
}
为何结果是1 2?
怎么才能得到结果:
1 2 3
a b c

酱紫就木问题了:

#!/bin/bash
a=(1 2 3)
b=(a b c)
fun()
{
   local a=($1)
   local b=($2)
   echo ${a[*]}
   echo ${b[*]}
}
fun "${a[*]}" "${b[*]}"

用 sh -x ./test.sh 这样调试执行,跟你原来的脚本比较,应该可以看出区别。

温馨提示:答案为网友推荐,仅供参考
相似回答