人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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}

●質問者: P-mako
●カテゴリ:コンピュータ インターネット
✍キーワード:ABC BAR bash echo hoge
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

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

で良いかと。

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

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ