• ベストアンサー

[bash]ファイル内の変数名を値に変換したい

bashです。 環境変数に例えば以下の変数が設定されているとします。 VAL1="aaa" VAL2="bbb" aというファイルに以下が記載されているとします。 ${VAL1} ${VAL2} aというファイルを読み込んだ際に、 ${VAL1}を"aaa"、${VAL2}を"bbb"と読み替えて読み込む方法はありますか。 変数のパターンは事前に分からないので、 '${VAL1}'を"aaa"に置換する、とかの方法はなしです。 evalを使えばうまくいきそうな気がするのですが、うまくいきませんでした。 > cat a | eval ⇒何も出力されない。 何か分かる方教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

以下のシェルを作成して、実行してください。 aのファイルを読み込み、${VAL1}を"aaa"、${VAL2}を"bbb"と読み替えて、出力するスクリプトです。 ------------------------------ #! /bin/sh while read LINE do eval VARNAME=$LINE echo $VARNAME done < a ------------------------------

関連するQ&A