Diferentes shells possuem diferentes sintaxes para isso.
Em bash
, você usa indireto de variável :
printf '%s\n' "${!env_name}"
Em ksh
, você usa nameref
aka typeset -n
:
nameref env_name=GOPATH
printf '%s\n' "$env_name"
Em zsh
, você usa P
sinalizador de expansão de parâmetro :
print -rl -- ${(P)env_name}
Em outro shell, você deve usar eval , que coloca você sob muitas implicações de segurança se não estiver Certifique-se de que o conteúdo da variável é seguro:
eval "echo \"\$$name_ref\""