Назад | Перейти на главную страницу

Как я могу скрыть вывод приложения оболочки в Linux?

Как я могу скрыть вывод на экран (printf) приложения оболочки в Linux?

Вы можете перенаправить вывод любой программы, чтобы его не было видно.

$ program > /dev/null

Это перенаправит стандартный вывод - вы все равно увидите ошибки

$ program &> /dev/null

Это перенаправит весь вывод, включая ошибки.

В командной строке доступны три устройства ввода-вывода.

 standard input  - 0
 standard output - 1
 standard error  - 2

Чтобы перенаправить стандартный вывод (вывод по умолчанию) в файл (и перезаписать файл), используйте

 command > file.log

Чтобы добавить в file.log, используйте два >s

 command >> file.log

Чтобы перенаправить стандартную ошибку в file.log, используйте

 command 2> file.log

И добавить

 command 2>> file.log

Объединить выходные данные в один поток и отправить их все в одно место

 command > file.log 2>&1

Это отправляет 2 (стандартная ошибка) в 1 (стандартный вывод) и отправляет стандартный вывод в file.log

Обратите внимание, что также можно перенаправить стандартный ввод в команду, которая ожидает стандартный ввод.

 command << file.txt


Для получения дополнительных сведений ознакомьтесь с Расширенное руководство по сценариям Bash.

Скрыть стандартный вывод:

./command >/dev/null

Скрыть стандартный вывод и стандартную ошибку:

./command >/dev/null 2>&1

Скрыть стандартный вывод и стандартный вывод ошибок и освободить терминал (запустите команду в фоновом режиме):

./command >/dev/null 2>&1 &

Если вы просто хотите скрыть вывод (а не сохранять его в файл), вы можете использовать:

Отредактировано:

$ команда &> / dev / null

Для Mac OS X v10.6 (Снежный барс):

Если вам нужно скрыть вывод, не сообщая об этом программе, проверив дескриптор файла вывода / ошибки, вы можете попробовать использовать в оболочке следующее:

stty flusho; command ;stty -flusho

или если вы просто хотите, кстати, скрыть ввод с терминала:

stty  -echo; command ;stty  echo

См. Дополнительную информацию на странице руководства stty (1).

Что касается Linux, все, что я знаю, это то, что Ubuntu 10.04 (Lucid Lynx) и некоторые Debian / Arch Linux (прокомментированные ниже - спасибо, Хендри) не имеют flusho (и я не вижу ничего другого подходящего на странице руководства). В echo настройка в любом случае работает на Ubuntu.