Как остановить gedit (и другие программы) от вывода предупреждений GTK и т. П. В моем терминале?

Эта простая функция сохранит «Nyan Cat 10 часов (оригинал) .mp4» из youtube в папке «Видео»:

video(){
youtube-dl -o "/Users/daniel/Videos/%(title)s.%(ext)s" $1 -f mp4
}

Использование с вашего терминала:

1
задан 7 September 2017 в 21:01

2 ответа

Это также обходной путь, но вам не нужно применять его для каждого приложения.

Запишите это на свой .bashrc, и вы можете использовать эту оболочку с F12 (или выбрать другой ключ), чтобы подавить предупреждения:

# output filter
of() { 
    if [ -n "$*" ]; then   
        # write the real command to history without the prefix "of" 
        history -s "$*"

        # catch the command output
        errorMsg=$( $* 2>&1 )

        # check if the command output contains not a GTK-Warning
        if ! $(echo $errorMsg | grep -q 'Gtk-WARNING'); then
            echo $errorMsg 
        fi
    fi
}

# write the function "of" before every command if the user presses F12
bind '"\e[24~": "\e[1~ of \e[4~\n"'
2
ответ дан 24 May 2018 в 05:04
  • 1
    Это выглядит немного лучше. Я собираюсь проверить это. – FUZxxl 2 August 2014 в 15:19

Я на самом деле написал инструмент hide-warnings в C, который мне намного проще использовать, чем скрипт, показанный выше. Кроме того, он будет записывать все выходные данные, записанные в stdout по умолчанию (поскольку Gtk и другие предупреждения отправляются на stderr, поэтому он по умолчанию анализирует stderr не stdout).

One большая проблема с вышеприведенным скриптом заключается в том, что он не будет писать ничего на консоль, даже если он не соответствует регулярному выражению, до тех пор, пока не будет выполнено. Это связано с тем, что он сохраняет все данные в переменной, а затем grep эту переменную после выполнения. Это также означает, что он сохранит вывод в этой переменной, возможно, используя большую часть памяти (по крайней мере, вы должны сохранить это во временном файле.) Наконец, из того, что я вижу, grep предотвратит отображение, если какая-либо одна строка соответствует , Возможно, это не совсем то, что вы хотите.

Инструмент может использоваться в простом псевдониме:

alias gvim="hide-warnings gvim"

(Я использую gvim ... Я уверен, что это будет работать с gedit тоже.)

Файл является автономным, никаких зависимостей, отличных от библиотеки C, поэтому вы можете получить копию и легко скомпилировать ее и установить:

gcc hide-warnings.c -o hide-warnings
sudo cp hide-warnings /usr/bin/.

В файле есть еще одна документация, и вы можете использовать --help после компиляции для быстрых документов.

1
ответ дан 24 May 2018 в 05:04

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

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