Как я могу сохранить результат curl в переменной bash - PullRequest
0 голосов
/ 08 апреля 2020

Когда я запускаю команду curl -d "param1=value1&param2=value2" -X POST https://xxx.xxxx.de/xx/xx.php 2>/dev/null в обычной командной строке, я получаю запрошенный результат {"success":false,"cause":"Token needed"}.

Мне нужен этот результат на сценарии bash, но когда я пытаюсь запустить его

curl = "$(curl -d "param1=value1&param2=value2" -X POST https://xxx.xxxx.de/xx/xx.php 2>/dev/null)"
echo $curl

Я не получаю запрошенный результат, я получаю это

[1/2]: "success":false --> <stdout>
--_curl_--"success":false
curl: (3) URL using bad/illegal format or missing URL

[2/2]: "cause":"Token needed" --> <stdout>
--_curl_--"cause":"Token needed"
curl: (3) URL using bad/illegal format or missing URL

Как я могу использовать правильный результат в моем скрипте bash?

1 Ответ

1 голос
/ 08 апреля 2020

Ваша команда не является присвоением переменной, она пытается выполнить curl с аргументами = и выводом команды подстановки. Удалите пробелы до и после =, и вы можете опустить кавычки вокруг подстановки команд (это один из немногих случаев, когда кавычки не нужны).

curl=$(curl -d "param1=value1&param2=value2" -X POST https://xxx.xxxx.de/xx/xx.php 2>/dev/null)
echo "$curl"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...