GNU/Linux >> Linux の 問題 >  >> Linux

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

ファイル内の環境変数を置換/評価する簡単な方法はありますか?たとえば、ファイル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文字のみで構成する必要があり、数字で始まり、空でない必要があります。それ以外の場合、そのような変数参照は無視されます。

特定の環境変数のみを置き換えるには、この質問を参照してください。


Linux
  1. Lum –最初の列に従って2つのファイルの共通の値を置き換えますか?

  2. * in * / etc / environment?で環境変数を参照する

  3. Oracle Databaseの環境変数とその機能

  1. nftw での警告

  2. 環境変数の確認

  3. sed のようなテキストを python に置き換えるにはどうすればよいですか?

  1. tr コマンド - 文字列 \n を実際の改行 (\n) に置き換える方法

  2. bash + bashスクリプトでファイルから変数と値を読み取る

  3. テキスト内の環境変数が存在する場合は置き換えます