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\""