【发布时间】:2021-08-07 12:46:42
【问题描述】:
我很想知道 bash' declare -n 选项在只给出一个参数时是如何工作的。
例如:
declare -n z
echo "${z}" # "" (empty string as expected)
z="somevalue"
echo "${z}" # "" (empty string)
declare -n z
echo "${z}" # "" (empty string)
z="somevalue"
echo "${z}" # somevalue (huwh? How come z is now assigned a value?)
为什么第二个declare 调用似乎取消了nameref 属性?
为什么第二个赋值操作似乎工作,而第一个却没有?
我正在使用 bash 版本5.0.17(1)-release
【问题讨论】:
-
你读过例如unix.stackexchange.com/q/510220?这不是特定于编程的。
-
@jonrshape 感谢您的节制。我之前确实看过该链接,但是-我的错-我只阅读了没有回答该问题的已接受答案。因此,我认为添加指向有用答案的链接对于文档目的很有价值:unix.stackexchange.com/a/510342/391074
-
@jonrshape。我已将问题更新为更具体,其他 StackExchange 问题未涵盖。我希望它对社区更有用。
-
我认为这很好;这是一个关于
bash脚本语言语义的问题。