設定されている環境変数の内容でテキストを置き換えるコマンドのメモ。
Docker使って設定ファイルを最初に用意したりするときに便利です。
スポンサーリンク
envsubstを使う
gettextパッケージに入っているenvsubstコマンドを使用します。
こちらはテキストの中に書かれている環境変数を置換してくれるコマンドです。
例えば次のような環境変数が設定しておきまして、
$ export HOGE=hogeenv
ファイルに${HOGE}と書いておきます。
$ cat env.template ${HOGE}
これをenvsubstコマンドに流し込むと、HOGEが置換されます。
$ cat env.template |envsubst hogeenv
設定されていない環境変数は空になる
環境変数の内容で置換してくれる便利なコマンドですが、$を付けた文字列を変数とみなしてしまうので、置換する環境変数が無かった場合は空文字にしてしまいます。
gettextパッケージが必要
このコマンドはgettextパッケージに入っています。Dockerイメージなどでは入っていないことも多く、見つからなければ別途インストールが必要です。