Skip to main content
replaced http://unix.stackexchange.com/ with https://unix.stackexchange.com/
Source Link

Different shells have different syntax for achieving this.

In bash, you use variable indirection:

printf '%s\n' "${!env_name}"

In ksh, you use nameref aka typeset -n:

nameref env_name=GOPATH
printf '%s\n' "$env_name"

In zsh, you use P parameter expansion flag:

print -rl -- ${(P)env_name}

In other shell, you must use evaleval, which put you under many security implications if you're not sure the variable content is safe:

eval "echo \"\$$name_ref\""

Different shells have different syntax for achieving this.

In bash, you use variable indirection:

printf '%s\n' "${!env_name}"

In ksh, you use nameref aka typeset -n:

nameref env_name=GOPATH
printf '%s\n' "$env_name"

In zsh, you use P parameter expansion flag:

print -rl -- ${(P)env_name}

In other shell, you must use eval, which put you under many security implications if you're not sure the variable content is safe:

eval "echo \"\$$name_ref\""

Different shells have different syntax for achieving this.

In bash, you use variable indirection:

printf '%s\n' "${!env_name}"

In ksh, you use nameref aka typeset -n:

nameref env_name=GOPATH
printf '%s\n' "$env_name"

In zsh, you use P parameter expansion flag:

print -rl -- ${(P)env_name}

In other shell, you must use eval, which put you under many security implications if you're not sure the variable content is safe:

eval "echo \"\$$name_ref\""
edited body
Source Link
user147505
user147505

Different shells have different syntax for archivingachieving this.

In bash, you use variable indirection:

printf '%s\n' "${!env_name}"

In ksh, you use nameref aka typeset -n:

nameref env_name=GOPATH
printf '%s\n' "$env_name"

In zsh, you use P parameter expansion flag:

print -rl -- ${(P)env_name}

In other shell, you must use eval, which put you under many security implications if you're not sure the variable content is safe:

eval "echo \"\$$name_ref\""

Different shells have different syntax for archiving this.

In bash, you use variable indirection:

printf '%s\n' "${!env_name}"

In ksh, you use nameref aka typeset -n:

nameref env_name=GOPATH
printf '%s\n' "$env_name"

In zsh, you use P parameter expansion flag:

print -rl -- ${(P)env_name}

In other shell, you must use eval, which put you under many security implications if you're not sure the variable content is safe:

eval "echo \"\$$name_ref\""

Different shells have different syntax for achieving this.

In bash, you use variable indirection:

printf '%s\n' "${!env_name}"

In ksh, you use nameref aka typeset -n:

nameref env_name=GOPATH
printf '%s\n' "$env_name"

In zsh, you use P parameter expansion flag:

print -rl -- ${(P)env_name}

In other shell, you must use eval, which put you under many security implications if you're not sure the variable content is safe:

eval "echo \"\$$name_ref\""
added 4 characters in body
Source Link
cuonglm
  • 158.2k
  • 41
  • 342
  • 420

Different shells have different syntax for archiving this.

In bash, you use variable indirection:

printf '%s\n' "${!env_name}"

In ksh, you use nameref aka typeset -n:

nameref env_name=GOPATH
printf '%s\n' "$env_name"

In zsh, you use P parameter expansion flag:

print -rl -- ${(P)env_name}

In other shell, you must use eval, which put you under many security implications if you're not sure the variable content is safe:

eval "echo \$$name_ref"\"\$$name_ref\""

Different shells have different syntax for archiving this.

In bash, you use variable indirection:

printf '%s\n' "${!env_name}"

In ksh, you use nameref aka typeset -n:

nameref env_name=GOPATH
printf '%s\n' "$env_name"

In zsh, you use P parameter expansion flag:

print -rl -- ${(P)env_name}

In other shell, you must use eval, which put you under many security implications if you're not sure the variable content is safe:

eval "echo \$$name_ref"

Different shells have different syntax for archiving this.

In bash, you use variable indirection:

printf '%s\n' "${!env_name}"

In ksh, you use nameref aka typeset -n:

nameref env_name=GOPATH
printf '%s\n' "$env_name"

In zsh, you use P parameter expansion flag:

print -rl -- ${(P)env_name}

In other shell, you must use eval, which put you under many security implications if you're not sure the variable content is safe:

eval "echo \"\$$name_ref\""
added 104 characters in body
Source Link
cuonglm
  • 158.2k
  • 41
  • 342
  • 420
Loading
Source Link
cuonglm
  • 158.2k
  • 41
  • 342
  • 420
Loading