Как включить аргумент в выражение JSON: «Проблемы с синтаксическим анализом JSON» - PullRequest
0 голосов
/ 11 февраля 2020

Я хотел бы иметь скрипт git-repository, который создает репозиторий github с одним аргументом

# git-repository <my_repository_name>

Однако я не могу включить переменную $ @. Выражение:

curl -u mygituser https://api.github.com/user/repos -d "{"name":"$@"}"

дает ошибку

{
  "message": "Problems parsing JSON",
  "documentation_url": "https://developer.github.com/v3/repos/#create"
}

Как включить переменную $ @ в выражение JSON?

1 Ответ

1 голос
/ 11 февраля 2020

Используйте jq для безопасного создания JSON в bash. В этом случае, так как вам нужна строка вместо массива , вам следует использовать $* вместо $@:

json=$(jq -nc --arg name "$*" '{"name": $name}')
curl -u mygituser https://api.github.com/user/repos -d "$json"
...