ちょっと前にシェル芸botで遊んでたところ、受け付けた標準入力をテンプレートファイルとして解釈して、変数展開を行ってくれるenvsubstなるコマンドについて知ったので、備忘として残しておくことにする。 gettextパッケージに入っているので、もしインストールされていない場合はyumやapt、brewからインストールするといいだろう。

使い方は簡単で、以下のようにパイプで変数のある内容を渡してやることでその内容を展開してくれる。

command | envsubst

[root@BS-PUB-CENT7-01 ~]# export TEST="TEST TEXT."
[root@BS-PUB-CENT7-01 ~]# echo $TEST
TEST TEXT.
[root@BS-PUB-CENT7-01 ~]#
[root@BS-PUB-CENT7-01 ~]# echo '=== $TEST ==='
=== $TEST ===
[root@BS-PUB-CENT7-01 ~]#
[root@BS-PUB-CENT7-01 ~]# echo '=== $TEST ===' | envsubst
=== TEST TEXT. ===