Таким образом, у меня есть curl
который передается в grep
и sed
.
Где бы я применил >/dev/null 2>&1
?
curl www.site.com | grep stuff | sed "other stuff"
В самом конце или после завитка?
Пожалуйста, уточните, какова цель команды. Я думаю, вы хотите использовать
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"
Только что объяснил немного ближе: >/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;)
Недавно я столкнулся с чем-то похожим, и мне нужно было время, чтобы загрузить определенную страницу. Я просто использовал /dev/null
качестве выходного файла, и это позволило мне получить всю хорошую статистику без печати какого-либо HTML.
curl www.google.com -o /dev/null
Для себя я также обернул его в команду time
для дополнительных данных
time (curl www.google.com -o /dev/null)
curl -sw '%{http_code}' www.example.com | tail -n 1
Я предпочитаю это в случае, если страница возвращает текст, что иногда происходит, например, при кручении порта драйвера MongoDB.