たとえば、変数があります。
env_name="GOPATH"
それでは、次の環境変数を取得したいと思いますGOPATH
。
echo $GOPATH
この問題をどのように$GOPATH
解決しますか$env_name
?
ベストアンサー1
これを行うために、他のシェルには異なる構文があります。
では、bash
次を使用します。可変間接:
printf '%s\n' "${!env_name}"
ではakaをksh
使用します。nameref
typeset -n
nameref env_name=GOPATH
printf '%s\n' "$env_name"
では、zsh
次を使用します。P
パラメータ拡張フラグ:
print -rl -- ${(P)env_name}
他のシェルでは使用する必要があります評価する、変数の内容が安全かどうかわからない場合は、いくつかのセキュリティリスクがあります。
eval "echo \"\$$name_ref\""