gpt4 book ai didi

linux - Bash 关联数组错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:06 25 4
gpt4 key购买 nike

当尝试在 bash 中执行以下命令时

foo=foo
my_array[$foo]=bar

我收到错误“bash: foo: expression recursion level exceeded (error token is "foo")”。但这很好用:

foo=hello
my_array[$foo]=bar

为什么会这样?

最佳答案

问题是您没有将数组声明为关联数组,因此假定它是一个数值数组。当 bash 尝试评估时

my_array[$foo]=bar

他进来的是

my_array[foo]=bar

但是数组索引不是数字,所以他再次尝试计算它,导致

my_array[foo]=bar

因为您不需要在方括号之间使用 $。您可以看到这种情况一直持续到抛出超出递归级别的异常为止。

要解决它,只需将数组声明为关联的:

declare -A my_array

关于linux - Bash 关联数组错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com