строка json в переменной bash - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь использовать переменную bash для хранения json.

  testConfig=",{
    \"Classification\": \"mapred-site\",
    \"Properties\": {
        \"mapreduce.map.java.opts\": \"-Xmx2270m\",
        \"mapreduce.map.memory.mb\": \"9712\"
      }
    }"

echo $ testConfig Вывод:, {

Если я укажу его в одной строке, он будет работать.Но я хотел бы хранить значения в моей переменной в чистом формате.

Я пытался использовать cat >> ECHO Это тоже не сработало

Любая помощь приветствуется относительно того, как я могу хранитьэто для того, чтобы получить вывод в ожидаемом формате.Благодаря.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

Вы можете использовать здесь документ, как описано здесь :

read -r -d '' testConfig <<'EOF'
{
    "Classification": "mapred-site",
    "Properties": {
        "mapreduce.map.java.opts": "-Xmx2270m",
        "mapreduce.map.memory.mb": "9712"
      }
}
EOF

# Just to demonstrate that it works ...
echo "$testConfig" | jq .

Это позволяет избежать цитирования.

0 голосов
/ 24 апреля 2018

Вы можете использовать read -d

read -d '' testConfig <<EOF
,{ /
        "Classification": "mapred-site", 
        "Properties": {/
            "mapreduce.map.java.opts": "-Xmx2270m", 
            "mapreduce.map.memory.mb": "9712"
          }
        }
EOF

echo $testConfig;
...