変数名で環境変数を取得しますか? [コピー]

変数名で環境変数を取得しますか? [コピー]

たとえば、変数があります。

env_name="GOPATH"

それでは、次の環境変数を取得したいと思いますGOPATH

echo $GOPATH

この問題をどのように$GOPATH解決しますか$env_name

ベストアンサー1

これを行うために、他のシェルには異なる構文があります。

では、bash次を使用します。可変間接:

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

ではakaをksh使用します。namereftypeset -n

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

では、zsh次を使用します。P パラメータ拡張フラグ:

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

他のシェルでは使用する必要があります評価する、変数の内容が安全かどうかわからない場合は、いくつかのセキュリティリスクがあります。

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

おすすめ記事