Следующее посылает стандартный вывод на нулевое устройство (битовая корзина).
scriptname >/dev/null
И если вы также хотите, чтобы сообщения об ошибках отправлялись туда, используйте одно из (первое может работать не во всех оболочках):
scriptname &>/dev/null
scriptname >/dev/null 2>&1
scriptname >/dev/null 2>/dev/null
И, если вы хотите записать сообщения, но не видите их, замените /dev/null
их реальным файлом, таким как:
scriptname &>scriptname.out
Для полноты, в Windows cmd.exe (где «nul» является эквивалентом «/ dev / null»), это:
scriptname >nul 2>nul
echo foo > $(tty)
скрипт и запустите./test.sh &> /dev/null
- вывод все еще выводится на терминал. Конечно, это не проблема, если вы пишете скрипт, который не использует такие команды./dev/null
существует в Cygwin, вам не нужно использоватьnul
.Что-то вроде
Это предотвратит стандартный вывод и вывод ошибок, перенаправляя их обоих
/dev/null
.источник
2>/dev/null
Пытаться
:
это сокращение от "ничего не делать".$()
это просто ваша команда.источник
0
(успех). Давайте посмотрим на пример использования команды,false
которая всегда возвращает1
(сбой). Например( echo foo | tee file ; false ) && echo bar
отображаетfoo
. Использование трюк , чтобы подавить вывод:( : $(echo foo | tee file ; false) ) && echo bar
. Но он отображаетbar
значение кода возврата0
(это не код возврата изfalse
). Пожалуйста, обновите свой ответ с учетом этого ограничения. ПриветствияDUMMY=$(yourcommand)
? Это не имеет ограничений, которые вы упомянули. :)DUMMY=$( echo foo | tee file ; false ) && echo bar
ничего не отображает. И командаDUMMY=$( echo foo | tee file ; true ) && echo bar
отображаетbar
. Дайте мне знать, если вы дадите ответ, чтобы подтвердить это ;-) CheersАльтернативой, которая может подходить в некоторых ситуациях, является присвоение результата команды переменной:
Поскольку Bash и другие интерпретаторы командной строки POSIX не рассматривают присвоение переменных как команду, код возврата настоящей команды соблюдается.
Примечание: присвоение с ключевым словом
typeset
ordeclare
рассматривается как команда, поэтому в качестве оценочного кода возврата в данном случае используется само присвоение, а не команда, выполняемая в вложенной оболочке:источник
Как и в посте andynormancx , используйте это (если вы работаете в среде Unix):
Или вы можете использовать это (если вы работаете в среде Windows):
источник
> nul
в Windows с Cygwin или Git Bash, и теперь вы застряли сnul
файлом, который не может быть удален, пожалуйста, попробуйте этот ответ , он работает как шарм.Взгляните на этот пример из Проекта документации Linux :
Тем не менее, вы можете использовать это простое перенаправление:
источник
В вашем скрипте вы можете добавить следующее к строкам, которые, как вы знаете, будут выводить:
Или вы также можете попробовать
источник
>>
)?