我正在制作bash脚本,但遇到了问题。所以说我明白了

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

create_some_array
echo ${a[*]}

有什么办法可以使我工作?我已经搜索了很多,但没有找到任何有效的方法。
我认为将a[]设置为全局变量应该可以,但是我找不到在我的代码中实际起作用的东西。有什么方法可以将数组从函数返回到主程序吗?

提前致谢

最佳答案

如描述的那样,这可以正常工作。它在实际代码中不起作用的最可能原因是因为您碰巧在子shell中运行它:

cat textfile | create_some_array
echo ${a[*]}

将不起作用,因为管道中的每个元素都在子 shell 中运行,并且
myvalue=$(create_some_array)
echo ${a[*]}

因为命令扩展发生在子shell中,所以将无法正常工作。

关于arrays - 从Bash函数返回数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14839199/

10-11 02:27