ファイル内の環境変数を置換/評価する簡単な方法はありますか?たとえば、ファイルconfig.xml
があるとします。 含まれているもの:
<property>
<name>instanceId</name>
<value>$INSTANCE_ID</value>
</property>
<property>
<name>rootPath</name>
<value>/services/$SERVICE_NAME</value>
</property>
…等。 $INSTANCE_ID
を置き換えたい INSTANCE_ID
の値を持つファイル内 環境変数、$SERVICE_NAME
SERVICE_NAME
の値を使用 envvar。どの環境変数が必要かを事前に知りません(つまり、誰かが新しい環境変数を構成ファイルに追加した場合にスクリプトを更新する必要はありません)。ありがとう!
承認された回答:
envsubst
を使用できます (gnu gettext
の一部 ):
envsubst < infile
ファイル内の環境変数を対応する値に置き換えます。 変数名は、英数字またはアンダースコアASCII文字のみで構成する必要があり、数字で始まり、空でない必要があります。それ以外の場合、そのような変数参照は無視されます。
特定の環境変数のみを置き換えるには、この質問を参照してください。