ファイル内の環境変数を置き換え/評価する簡単な方法はありますか?
以下を含むファイルがあるとしますconfig.xml
。
<property>
<name>instanceId</name>
<value>$INSTANCE_ID</value>
</property>
<property>
<name>rootPath</name>
<value>/services/$SERVICE_NAME</value>
</property>
...など。
$INSTANCE_ID
ファイルのenv var値を環境変数の値に置き換えたいと思います。INSTANCE_ID
$SERVICE_NAME
SERVICE_NAME
どの環境変数が必要かを事前に知りません(または、誰かが設定ファイルに新しい環境変数を追加した場合は、スクリプトを更新したくありません)。
ベストアンサー1
使用できるenvsubst
(部分gnu gettext
):
envsubst < infile
ファイルの環境変数はその値に置き換えられます。変数名は英数字またはアンダースコアASCII文字でのみ構成する必要があり、数字で始めることはできず、空白にすることはできません。それ以外の場合、対応する変数参照は無視されます。
gettext envsubst
このサポートとアドオンの${VAR:-default}
いくつかの代替案:
rust
選ぶ
go
選ぶ
node.js
選ぶ
特定の環境変数のみを交換し、この質問を見ました。