次の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
"
変数に二重引用符()や改行文字などの文字が含まれていると、妥当性が損なわれます。