Estamos tendo um problema ao tentar definir uma variável local em uma função com nameref.
O código do script é o seguinte:
#!/usr/bin/bash
msg=hello
myparam=''
superfunc () {
productfile=$1
local -n refmyparam=$2
}
superfunc $msg $myparam
echo $myparam
Ao executá-lo, obtemos o erro:
line 7: local: `': not a valid identifier
Usamos GNU bash, versão 5.2.21
local -n
edeclare -n
precisam de um nome de variável como seu valor, não seu valor.Além disso, criar uma variável de referência local não altera a variável original. Você precisa alterar a variável de referência para ver como a alteração se propaga de volta para o original: