環境変数への間接アクセス [複製]

環境変数への間接アクセス [複製]

bashスクリプトがあると仮定すると

ev=USER

evを使用して$ USERの環境変数の値を取得するには?

無邪気にこれを試してください:

echo ${"$"$ev}

これにより置換が不良になる可能性があります。

$USER値を返したいです。

ベストアンサー1

間接拡張(「可変間接参照」とも呼ばれる)を使用すると、

ev=USER
printf '%s\n' "${!ev}"

bashこれは、(5.0)マニュアルの「パラメータ拡張」セクションで説明されています。

evまたは名前参照を作成する(bash4.3以上が必要)

declare -n ev=USER
printf '%s\n' "$ev"

bashこれは(5.0)のマニュアルに記載されていますが、今後「位置パラメータ」というセクションです。

おすすめ記事