Как скрыть вывод терминала при выполнении команды?

Когда я запускаю определенные программы из командной строки, такие как eclipse и средство просмотра документов в 11.10, он выводит на экран информацию, которая кажется несущественной.

Также, когда они запускаются в фоновом режиме, они иногда продолжают выводить вывод на терминал, над которым я сейчас работаю, что раздражает.

Я бы хотел, чтобы они просто запускали и сохраняли фоновый материал в фоновом режиме. Мое рассуждение состоит в том, что если вы запускаете эти программы через графический интерфейс (например, двойным щелчком по значку), эти сообщения мне никогда не показываются, поэтому я не нуждаюсь в них в командной строке.

1
задан 6 June 2014 в 01:30

2 ответа

Вы можете создать функцию bash, которая будет содержать имя команды и добавить дополнительные функции для достижения того, что вы просите.

Например: допустим, вы хотите запустить gvim (gui текстовый редактор) из командной строки.

вы могли бы написать такую ​​функцию:

function gvim () {
    nohup gvim "$@" > /dev/null 2>&1 & disown
}

(добавьте эту функцию в ваш файл .bashrc или .bash_aliases, чтобы он был всегда загружается)

Объяснение:

это будет означать команду gvim с функцией bash, также названной gvim (поэтому, когда вы вводите gvim в приглашении bash, это вызовет вашу функцию gvim вместо выполнения реальной команды gvim. Затем ваша функция вызывает реальную команду gvim (и принимает ее обычные аргументы) с некоторыми дополнительными функциями: перенаправляет stdout и stderr на /dev/null ( подавляет вывод на терминал) использует & для запуска команды в фоновом режиме (поэтому ваша оболочка не заблокирована) использует disown для удаления фонового задания из оболочки (поэтому она не будет отображаться в списке активных заданий) использует nohup для отсоединения процесса от терминала (так вы можете завершить сеанс оболочки или закрыть свой терминал, не убивая процесс)
7
ответ дан 25 May 2018 в 14:53
  • 1
    Кстати, я думаю, что это более комплексное решение, чем принятый ответ от @Misery – Corey Goldberg 16 February 2016 в 20:21

попробуйте добавить --help в качестве командного переключателя и искать «тихий», это должно подавлять вывод или просто запускать из графического интерфейса. и запускать с помощью коммутатора или найти способ его подавить с помощью скрипта

лично я запускаю из cli, чтобы получить этот вывод, поэтому я не уверен, что это возможно для всех графических приложений.

5
ответ дан 25 May 2018 в 14:53

Другие вопросы по тегам:

Похожие вопросы: