$VAR
または${VAR}
(1つだけでなく、env内の既存のすべての変数)の出現を環境変数の実際の値に置き換えるUNIXツールがあるかどうかに興味があります。この置換は、bashスクリプトではなく、プレーンテキストファイルにあります。ある種の「貧乏人のテンプレートエンジン」。
私は私ができることを知っています
(echo 'echo -n "'; sed -e "s/\"/\"'\"'\"/g" infile; echo '"') | sh -s >outfile
sh
(実際、私はそうします)が、そのためのよく知られたツールがあれば、巧妙なトリックの代わりにそれを使用したいと思います。
編集:@glennjackmanはの使用を提案しているeval
ので、行は短く、サブシェルはありません:
eval echo -n \""`sed -e 's/"/\\\\\\\"/g' infile`"\" >outfile
これはかなり短いです(専用のツールではありませんが、ツールがない場合は十分です)。