[Shell command] envsubst で指定した環境変数だけ展開する

envsubst コマンドの引数に展開したい環境変数名を記述すると、展開する環境変数を限定することができます。

まず下記のテンプレートファイル sample.template を用意します。

Hello, ${NAME1}.
Good bye, ${NAME2}.

環境変数 NAME1NAME2 に文字列をセットします。

export NAME1="suzuki"
export NAME2="tanaka"

envsubst コマンドの引数に、環境変数 NAME1 だけ展開するように指定します。

cat sample.template | envsubst '${NAME1}'

実行結果は下記となります。${NAME1} だけ展開されていることが分かります。

Hello, suzuki.
Good bye, ${NAME2}.

変数名の指定はカンマ区切りで複数の指定を行うこともできます。

cat sample.template | envsubst '${NAME1},${NAME2}'