ЗАВИХРЕНИЕ: как подавить странный вывод при перенаправлении?

Я пытаюсь распечатать просто подробные разделы ВИХРЕВОГО запроса (которые отправляются в stderr) от оболочки удара.

Но когда я перенаправляю stdout как это:

curl -v http://somehost/somepage > /dev/null

Своего рода таблица результатов появляется посреди вывода к stderr:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

Сопровождаемый этой близостью конец:

{ [data not shown]
118   592    0   592    0     0  15714      0 --:--:-- --:--:-- --:--:-- 25739

Который делает заголовки ответа менее читаемыми.

Я не вижу этот текст, если не перенаправляющий.


Другой способ видеть эффекты:

Таблица не появляется:

curl -v http://somehost/somepage 2>&1

Таблица появляется:

curl -v http://somehost/somepage 2>&1 | cat

1) Каким образом это обнаруживается только с определенными типами перенаправлений?

2) Что самый опрятный путь состоит в том, чтобы подавить его?

Спасибо

69
задан 07.08.2010, 20:32

2 ответа

Попробуйте это:

curl -vs -o /dev/null http://somehost/somepage 2>&1

Это подавит метр прогресса, отправить stdout кому: /dev/null и перенаправление stderr ( -v вывод) к stdout.

61
ответ дан 07.12.2019, 08:12

Со ссылкой на вопрос 1 (как cURL знает, чтобы только отобразить таблицу, когда произведенный перенаправляется), я не понял, что программа могла сказать, что ее выводы направлялись, но это кажется в системах POSIX существует функция isatty который сообщает, относится ли дескриптор файла к терминалу.

4
ответ дан 07.12.2019, 08:12

Теги

Похожие вопросы