くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

【bash】テキストファイルに埋め込んだ環境変数を展開する

ご利用は自己責任で。

こんなテキストファイルがあります。

$ cat test.txt
LANG is $LANG
LANG is "$LANG"
LANG is '$LANG'

 
普通にcatすれば上記の通りですが、これをこうすればヒアドキュメント形式になって……

$ printf "cat <<++EOS\n`cat test.txt`\n++EOS\n"
cat <<++EOS
LANG is $LANG
LANG is "$LANG"
LANG is '$LANG'
++EOS

 
shに渡せば展開されます。

$ printf "cat <<++EOS\n`cat test.txt`\n++EOS\n" | sh
LANG is ja_JP.UTF-8
LANG is "ja_JP.UTF-8"
LANG is 'ja_JP.UTF-8'

以上。