Вот почему wget использует stderr для некоторых выводимых данных. Второй должен работать.
другой прием
2
Кстати, вы можете сохранить этот вывод wget в файле журнала, поэтому, когда / если загрузка перестает работать, вы можете выяснить, почему. Если это все равно в сценарии. Если это одноразовый забег, то да, в мусорную корзину
Мэтт Симмонс
1
Потому что wgetвы можете использовать -qпараметры, чтобы сделать это тихо.
Пхамре
Любой способ подавить вывод, записанный непосредственно в / dev / tty?
d11wtq
30
В командной строке доступно три устройства ввода-вывода.
standard in - 0
standard out - 1
standard error - 2
Чтобы перенаправить стандартный вывод (вывод по умолчанию) в файл (и перезаписать файл), используйте
command > file.log
Чтобы добавить файл file.log, используйте 2> s
command >> file.log
чтобы перенаправить стандартную ошибку в файл file.log, используйте
command 2> file.log
и добавить
command 2>> file.log
Объединить результаты в один поток и отправить их все в одно место.
command > file.log 2>&1
Это отправляет 2 (stderr) в 1 (stdout) и отправляет stdout в file.log
Обратите внимание, что также возможно перенаправить стандарт в команду, ожидающую стандартного ввода.
Может кто-нибудь объяснить, как command > file.log 2>&1работает?
Кори Кляйн
На каком низком уровне вы хотели бы знать?
Мэтт Симмонс
3
@nomoreink: на самом деле это 2 команды, одна есть, > fileа вторая есть 2>&1. Первый перенаправляет стандарт в файл. Второй берет второй файловый дескриптор и перенаправляет его на первый. Вы можете сделать обратное, перенаправить стандартный вывод на стандартную ошибку, >&2а затем перенаправить стандартную ошибку в файл с помощью 2> file.
Хьюберт Карио
12
Спрятать stdout
./command >/dev/null
Скрыть stdoutиstderr
./command >/dev/null 2>&1
Скрыть stdoutи stderrотпустить терминал (запустите команду в фоновом режиме)
Да, я бы, Бабу. Я имел в виду $ command &> / dev / null. Я извиняюсь за то, что печатал слишком быстро для моего же блага.
Лучо
2
Для Mac OS X (10.6 «Снежный барс»):
Если вам нужно скрыть вывод, не сообщая программе об этом, проверив дескриптор файла вывода / ошибки, вы можете попробовать использовать в оболочке следующее:
stty flusho; command ;stty -flusho
или если вы просто хотите скрыть ввод из терминала, кстати:
stty -echo; command ;stty echo
Смотрите stty (1) справочную страницу для получения дополнительной информации
Для Linux все, что я знаю, это то, что Ubunutu (10.04 "Lucid") и некоторые "Debian / Arch" (прокомментировано ниже - tnx hendry) не имеют flushoнастройки (и я не вижу ничего другого подходящего на man-странице) , echoУстановка работает на Ubuntu в любом случае.
Ответы:
Вы можете перенаправить вывод любой программы, чтобы он не был виден.
Это перенаправит стандартный вывод - вы все равно увидите ошибки
Это перенаправит все выходные данные, включая ошибки.
источник
wget
вы можете использовать-q
параметры, чтобы сделать это тихо.В командной строке доступно три устройства ввода-вывода.
Чтобы перенаправить стандартный вывод (вывод по умолчанию) в файл (и перезаписать файл), используйте
Чтобы добавить файл file.log, используйте 2> s
чтобы перенаправить стандартную ошибку в файл file.log, используйте
и добавить
Объединить результаты в один поток и отправить их все в одно место.
Это отправляет 2 (stderr) в 1 (stdout) и отправляет stdout в file.log
Обратите внимание, что также возможно перенаправить стандарт в команду, ожидающую стандартного ввода.
РЕДАКТИРОВАТЬ
Для более подробной информации, ознакомьтесь с Advanced Bash Scripting Guide
источник
command > file.log 2>&1
работает?> file
а вторая есть2>&1
. Первый перенаправляет стандарт в файл. Второй берет второй файловый дескриптор и перенаправляет его на первый. Вы можете сделать обратное, перенаправить стандартный вывод на стандартную ошибку,>&2
а затем перенаправить стандартную ошибку в файл с помощью2> file
.Спрятать
stdout
Скрыть
stdout
иstderr
Скрыть
stdout
иstderr
отпустить терминал (запустите команду в фоновом режиме)источник
Если вы просто хотите скрыть вывод (а не сохранить его в файл), вы можете использовать:
Отредактировано:
$ command &> / dev / null
источник
Для Mac OS X (10.6 «Снежный барс»):
Если вам нужно скрыть вывод, не сообщая программе об этом, проверив дескриптор файла вывода / ошибки, вы можете попробовать использовать в оболочке следующее:
или если вы просто хотите скрыть ввод из терминала, кстати:
Смотрите stty (1) справочную страницу для получения дополнительной информации
Для Linux все, что я знаю, это то, что Ubunutu (10.04 "Lucid") и некоторые "Debian / Arch" (прокомментировано ниже - tnx hendry) не имеют
flusho
настройки (и я не вижу ничего другого подходящего на man-странице) ,echo
Установка работает на Ubuntu в любом случае.источник