程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Bash:将 (+=) 附加到 nameref (-n) 到哈希键大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Bash:将 (+=) 附加到 nameref (-n) 到哈希键?

开发过程中遇到Bash:将 (+=) 附加到 nameref (-n) 到哈希键的问题如何解决?下面主要结合日常开发的经验,给出你关于Bash:将 (+=) 附加到 nameref (-n) 到哈希键的解决方法建议,希望对你解决Bash:将 (+=) 附加到 nameref (-n) 到哈希键有所启发或帮助;

在 bash 5.0.17 中,

s='X'; declare -n s2=s
s2+=YYY; declare -p s

正确产生 declare -- s="XYYY"。到现在为止还挺好。现在,如果我为关联数组键创建 nameref 会怎样?

declare -A aa
aa=( [k1]=v1 ); declare -n 'nk1=aa[k1]'
nk1+=YYY; declare -p aa

(我认为引号是必需的,否则会发生文件名扩展——用 shopt -s nullglob 测试)。这产生了

declare -A aa=([k1]="v1aa[k1]YYY" )

这个用于声明 nameref(或用于附加)的语法是否错误?

解决方法

无法使bash 4.4.20 进行复制:

$ declare -A aa=( [k1]=v1 )
$ declare -n 'nk1=aa[k1]'
$ nk1+=YYY
$ declare -p aa
declare -A aa=([k1]="v1YYY" )

但是,在具有 bash 5.1.4 的系统上,我得到 declare -A aa=([k1]="v1aa[k1]YYY" ),就像您在 5.0.17 中看到的一样。所以看起来在 5.X 系列的某个时候引入了一个错误。

大佬总结

以上是大佬教程为你收集整理的Bash:将 (+=) 附加到 nameref (-n) 到哈希键全部内容,希望文章能够帮你解决Bash:将 (+=) 附加到 nameref (-n) 到哈希键所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。