ファイルの環境変数を実際の値に置き換えますか?

ファイルの環境変数を実際の値に置き換えますか?

ファイル内の環境変数を置き換え/評価する簡単な方法はありますか?

以下を含むファイルがあるとします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_NAMESERVICE_NAME

どの環境変数が必要かを事前に知りません(または、誰かが設定ファイルに新しい環境変数を追加した場合は、スクリプトを更新したくありません)。

ベストアンサー1

使用できるenvsubst(部分gnu gettext):

envsubst < infile

ファイルの環境変数はその値に置き換えられます。変数名は英数字またはアンダースコアASCII文字でのみ構成する必要があり、数字で始めることはできず、空白にすることはできません。それ以外の場合、対応する変数参照は無視されます。

gettext envsubstこのサポートとアドオンの${VAR:-default}いくつかの代替案:
rust選ぶ
go選ぶ
node.js選ぶ


特定の環境変数のみを交換し、この質問を見ました。

おすすめ記事