当我们尝试使用 nameref 在函数中设置局部变量时遇到问题。
脚本代码如下:
#!/usr/bin/bash
msg=hello
myparam=''
superfunc () {
productfile=$1
local -n refmyparam=$2
}
superfunc $msg $myparam
echo $myparam
运行时我们收到错误:
line 7: local: `': not a valid identifier
我们使用GNU bash,版本 5.2.21
local -n
并且declare -n
需要一个变量名作为它们的值,而不是它的值。此外,创建局部引用变量不会更改原始变量。您需要更改引用变量以查看更改如何传播回原始变量: