envから動的変数を読む

envから動的変数を読む

環境変数があるとしましょう。

  echo lmx_setting_foo="bar";

上記の環境変数は次のように生成されます。

$ lmx set foo bar

もちろん:

export "lmx_setting_$2"="$3"

誰かが「foo」を検索したいと仮定すると、次のようになります。

$ lmx get foo

しかし、これを行うと:

echo "$lmx_setting_$2"

うまくいかないようです

ベストアンサー1

この問題を解決する方法はいくつかありますが、最も移植性の高い方法はおそらく

eval "echo \$lmx_setting_$2"

しかし、評価を避けるbashの具体的な方法は次のとおりです。

temp="lmx_setting_$2"
echo ${!temp}

以前に経験したことがない場合は、bashのマニュアルページを開き、下にスクロールしてパラメータ拡張すべてのオプションを確認してください。環境変数について具体的に質問しましたが、その変数をエクスポートする必要がなく、十分な新しいbashバージョン(4.0+)がある場合は、連想配列を使用して全体的な混乱を避けることができます...しかし、スクリプトは実際には携帯できません。

おすすめ記事