bashの質問です。

外部ファイルを読み込んで処理するシェルがあります。この外部ファイルの内容にシェル変数に相当する記述があった場合に、正しく解釈させる記述はどうすれば良いですか?
求めているのは、下記のような結果ですが、シェルの記述 or 外部ファイルの記述が悪く期待どおりの結果が得られません。

◆シェル
bar="test"
while read HOGE
do
echo ${HOGE}
done < foo.txt

◆外部ファイル(foo.txt)
abc${bar}
123${bar}

◆結果(期待)
abctest
123test

◆結果(実際)
abc${bar}
123${bar}

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:2006/12/06 12:25:17
  • 終了:2006/12/06 12:35:07

回答(1件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402006/12/06 12:29:24

ポイント60pt
bar="test"
while read HOGE; do
  eval "echo ${HOGE}"
done < foo.txt

で良いかと。

ただし通常のシェルスクリプトとまったく同じ解釈をする事になるので、外部ファイルの記述内容には注意してください。

http://www.atmarkit.co.jp/flinux/rensai/shell05/parameter.html

id:P-mako

ご回答ありがとうございます。

evalですね。助かりました。

2006/12/06 12:34:52

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません