ファイルテンプレートをインポートし、設定された変数を使用して出力します。

ファイルテンプレートをインポートし、設定された変数を使用して出力します。

次のjsonテンプレートファイルがあります。

# INPUT file.json
{
  "set1":{
          "string1": "${VAR1}",
          "string2": "${VAR2}",
          (...)
         }
}

スクリプトはこれらのVAR値を収集します。したがって、このjsonテンプレートをインポートして、すべての変数が設定されたjson.tmpを出力する必要があります。

# OUTPUT file.json.tmp
{
  "set1":{
          "string1": "string1_value",
          "string2": "string2_value",
          (...)
         }
}

ファイルを読み込んでエコーしたいのですが、常にこれらの変数を設定せずにtmpファイルを出力します。

VAR1=$1
VAR2=$2
# (...)
JSON_IN=`cat file.json`
echo $JSON_IN > file.json.tmp

どんなアイデアがありますか?

ありがとう

ベストアンサー1

実行できる操作は次のとおりですenvsubst

変数はenvsubst分岐プロセスであり、エクスポートされていない変数についてはわからないため、エクスポートする必要があります。

export VAR1=$1
export VAR2=$2
envsubst < file.json > file.json.tmp

json"変数に二重引用符()や改行文字などの文字が含まれていると、妥当性が損なわれます。

おすすめ記事