переменные в запросах curl api - PullRequest
1 голос
/ 26 марта 2020

Я играл с API, и я могу запрашивать данные и анализировать ответ json. Тем не менее, я использую переменные в своих запросах, и они вызывают у меня проблемы. Если переменная не содержит пробелов, то все работает отлично, но если есть пробелы, я получаю сбои.

Вот как я это делаю

search="string with space"
curl -s 'https://apiurl.com' \
> -d 'search "'$search'";' \
> -H 'user-key: xxxxxxxxxxx' \
> -H 'Accept: application/json'
[
  {
    "title": "Syntax Error",
    "status": 400,
    "cause": "Mismatched input, double check your input. Common cause is sending \\\" instead of \"."
  }
]

Может кто-нибудь объяснить, почему это происходит? Если в запросе я использую строку с пробелами, а не переменную, это не проблема.

1 Ответ

2 голосов
/ 26 марта 2020

Classi c корпус вируса QUOTATION-MARK-19. :)

Просто замените 'search "'$search'";' на 'search "'"$search"'";' Все, что вам не хватало, - это дополнительная двойная кавычка, чтобы учесть расширение переменной $search

search="string with space"
curl -s 'https://apiurl.com' \
> -d 'search "'"$search"'";' \
> -H 'user-key: xxxxxxxxxxx' \
> -H 'Accept: application/json'
[
  {
    "title": "Syntax Error",
    "status": 400,
    "cause": "Mismatched input, double check your input. Common cause is sending \\\" instead of \"."
  }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...