Записать файл jq со значением ключа на подобъект - PullRequest
0 голосов
/ 25 октября 2018

Я хочу создать файл Json (Composer) с JQ из ничего.Моя цель состоит в том, чтобы установить модуль и версию из аргументов, переданных в команде jq

{
    "require" : {
        "mymodule": "myversion"
   }
}

Я пробовал что-то подобное, и я не понимаю, почему это не правильно.

jq --arg module "themodule" --arg version "3.0" '{.require.($module):$version}' 

Спасибо заваша помощь

1 Ответ

0 голосов
/ 25 октября 2018

Во-первых, вы почти наверняка захотите использовать параметр командной строки -n;во-вторых, module является ключевым словом и поэтому не может использоваться в качестве $ -вариабельного имени.Но:

jq -n --arg m themodule --arg version "3.0" '
  {require: { ($m): $version} }' 

производит:

{
  "require": {
    "themodule": "3.0"
  }
}

Хитрость заключается в том, чтобы заключить выражение, указывающее имя ключа в скобках.

...