从Bash函数返回数组

Kay*_*yKo 6 arrays bash shell function return-value

我正在制作一个bash脚本,我遇到了一个问题.所以,让我说我得到了这个

function create_some_array(){
  for i in 0 1 2 3 .. 10
  do
    a[i]=$i
  done
}

create_some_array
echo ${a[*]}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让我的工作吗?我搜索了很多,没有找到任何工作.我认为制作a[]一个全局变量应该可行,但我找不到在我的代码中实际工作的东西.有没有办法将数组从函数返回到主程序?

提前致谢

tha*_*guy 3

正如所描述的,这工作得很好。它在您的实际代码中不起作用的最可能原因是您碰巧在子 shell 中运行它:

cat textfile | create_some_array
echo ${a[*]}
Run Code Online (Sandbox Code Playgroud)

不起作用,因为管道中的每个元素都在子 shell 中运行,并且

myvalue=$(create_some_array)
echo ${a[*]}
Run Code Online (Sandbox Code Playgroud)

不起作用,因为命令扩展发生在子 shell 中。