Когда я запускаю некоторые программы из командной строки, такие как eclipse и просмотрщик документов в 11.10, он извергает кучу информации, которая кажется несущественной.
Также, когда они работают в фоновом режиме, они иногда продолжают выводить данные на терминал, над которым я сейчас работаю, что раздражает.
Я бы хотел, чтобы они просто запустили фоновый материал. Я рассуждаю так: если вы запускаете эти программы через графический интерфейс (например, двойной щелчок на значке), эти сообщения мне никогда не показываются, поэтому они мне не нужны в командной строке.
попробуйте добавить --help в качестве переключателя команд и найдите «тихий», это должно подавить вывод, или просто запустить из GUI. и запустить с помощью переключателя или найти способ подавить его с помощью скрипта
, лично я запускаю из cli, чтобы получить этот вывод, поэтому я не уверен, что это возможно для всех приложений с графическим интерфейсом.
Можно создать функцию удара, которая исказит название команды и добавит некоторую дополнительную функциональность для достижения того, что Вы просите.
Например: скажем, Вы хотите запуститься gvim
(gui текстовый редактор) из командной строки.
Вы могли записать функцию как это:
function gvim () {
nohup gvim "$@" > /dev/null 2>&1 & disown
}
(добавьте эту функцию к Вашему .bashrc
или .bash_aliases
файл, таким образом, это всегда загружается),
Объяснение:
это исказит gvim
команда с ударом функционирует также названная gvim
(таким образом, когда Вы вводите gvim
при подсказке удара это назовет Ваш gvim
функция, вместо того, чтобы выполнить реальное gvim
команда. Ваша функция затем называет реальное gvim
команда (и принимает ее регулярный args), с некоторыми дополнительными функциями:
/dev/null
(подавляет вывод к терминалу),&
выполнять команду в фоновом режиме (таким образом, Ваша оболочка не заблокирована),disown
удалить фоновое задание из оболочки (таким образом, это не появится в списке активных заданий),nohup
отсоединять процесс от терминала (таким образом, можно закончить сессию оболочки или закрыть терминал, не уничтожая процесс),Если вы можете избежать записи чего-либо в консоли, это зависит от того, как создается вывод из программы. Если он передается на стандартный вывод, то достаточно просто сделать
$ eclipse >/dev/null
и вывод не должен производиться.
Для подавления сообщений об ошибках также:
$ eclipse >/dev/null 2>&1
Или в bash, просто:
$ eclipse &>/dev/null
Но если они делают это как-то иначе, то может быть проблемой остановить его от записи в консоли.
если возможно, используйте решение, данное MuffinStateWide