вывод wget и ошибка на стандартный вывод / стандартная ошибка

#bash #wget

#bash #wget

Вопрос:

Я хотел запустить простой wget для отображения возврата вызова REST на терминале, избегая долгого утомительного вывода. Я использую:

 $ wget -qO- localhost:8080/product/4
{"id":4,"name":"Spoon","price":2}
$
  

Хорошо. Однако, если есть ошибка (например, 404 — НЕ НАЙДЕНО), она ничего не показывает:

 $ wget -qO- localhost:8080/badurl/4
$                <- nothing shown...
  

Можно ли указать wget показывать ошибку в случае, если это произойдет? Что-то вроде:

 $ wget -qO- localhost:8080/badurl/4
404 - HTTP NOT FOUND
$
  

Может быть, я прошу слишком многого, но не помешает спросить.

Ответ №1:

man wget :

-nv
--no-verbose
Отключите подробный, не будучи полностью тихим (используйте -q для этого), что означает, что сообщения об ошибках и основная информация все еще печатаются.

Например:

 $ wget -nv -O- google.com/doesnotexist
http://google.com/doesnotexist:
2020-09-28 19:57:38 ERROR 404: Not Found.
  

Комментарии:

1. Принято. Один дополнительный запрос, имеющий второстепенное значение: знаете ли вы какой-либо способ принудительного ввода новой строки после содержимого? При успешном выполнении сам ответ (содержимое JSON) не содержит CR / LF, поэтому дополнительная строка отображается связанной с ним в той же строке.