3

Таким образом, у меня есть curl который передается в grep и sed . Где бы я применил >/dev/null 2>&1 ?

curl www.site.com | grep stuff | sed "other stuff"

В самом конце или после завитка?

4 ответа4

7

Пожалуйста, уточните, какова цель команды. Я думаю, вы хотите использовать

curl -s www.site.com

для предотвращения индикации прогресса и прочего. -s выполнит то же действие, но молча

Если вам абсолютно необходимо использовать>/dev/null 2> & 1, я думаю, что перенаправлю вывод curl в файл

curl www.site.com -o file.txt >/dev/null 2>&1
cat file.txt | grep stuff | sed "other stuff"   
4

Только что объяснил немного ближе: >/dev/null перенаправляет SDTOUT (стандартный вывод) в "черную дыру", а 2>&1 добавляет STDERR (стандартный вывод ошибок) к STDOUT, поэтому он также идет в нирвану. Это не оставляет ничего для отображения: нормальный вывод, а также ошибки исчезли. Так что вы, вероятно, можете хотеть быть

curl -s www.site.com 2>/dev/null | grep stuff | sed "other stuff"

то есть не перенаправлять STDOUT, просто подавить STDERR и сказать curl, чтобы он показывал только содержимое с отступом, а затем передать это в grep и, наконец, в sed.

Старайтесь не вводить пробелы между "2>", иначе 2 скорее будет интерпретироваться как дополнительный параметр для curl;)

0

Недавно я столкнулся с чем-то похожим, и мне нужно было время, чтобы загрузить определенную страницу. Я просто использовал /dev/null качестве выходного файла, и это позволило мне получить всю хорошую статистику без печати какого-либо HTML.

curl www.google.com -o /dev/null

Для себя я также обернул его в команду time для дополнительных данных

time (curl www.google.com -o /dev/null)
-1

curl -sw '%{http_code}' www.example.com | tail -n 1

Я предпочитаю это в случае, если страница возвращает текст, что иногда происходит, например, при кручении порта драйвера MongoDB.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .