вывод curl не перенаправляется в файл - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь перенаправить вывод curl в файл.Согласно man-страницам curl, я должен добавить:

--output <file.txt> 

Однако, даже если я это сделаю, вывод не будет перенаправлен.Может кто-нибудь подсказать, пожалуйста, что я делаю не так?Я пытаюсь выполнить запрос ниже:

$ curl -v -H "Content-Type: application/json" -d '{"json":"data"}' --user email@host.com:password http://host.com/inventory/ --output haha.txt

Я получаю вывод на терминал / оболочку, но он просто не попадает в файл.

1 Ответ

0 голосов
/ 17 июня 2018

--output (или -o) записывает загруженный контент в заданный файл (вместо записи в стандартный вывод).Остальная часть вывода cURL (индикатор выполнения, сообщения об ошибках, подробный режим и т. Д.) Все еще записывается в stderr, который отображается в терминале.https://en.wikipedia.org/wiki/Standard_streams

Вы можете использовать опцию cURL --stderr, чтобы перенаправить этот вывод в файл или операторы перенаправления вашей оболочки .

Со страницы man:

  --stderr
         Redirect all writes to stderr to the specified file instead. If the file
         name is a plain '-', it is instead written to stdout.

         If this option is used several times, the last one will be used.

         See also -v, --verbose and -s, --silent.

Использование оператора перенаправления оболочки для перенаправления обоих выходных потоков, как они были напечатаны на терминале, в файл:

curl -v https://duckduckgo.com > filename 2>&1
...