gnome や kde などの Windows システム関連端末でアプリケーションを起動すると、通常、これらのアプリケーションは私の端末にあらゆる種類のジャンク メッセージを送信します。このアプリを閉じるにはどうすればよいですか?
たとえば、次のように入力すると:
okular somepdf.pdf &
PDFファイルを表示するウィンドウが表示されたら、端末の横からPDFを読み、完了したら閉じることができます。
典型的な例は次のとおりです。
:~$ cd Documents
:~/Documents$ okular equi.dvi &
[1] 5823
閉じると、次のゴミが端末に送られます。
:~/Documents$ okular(5823)/kdeui (kdelibs) KXMLGUIClient::~KXMLGUIClient: 0x2322528 deleted without having been removed from the factory first. This will leak standalone popupmenus and could lead to crashes.
d
d: command not found
[1]+ Done okular equi.dvi
[1]+ Done okular equi.dvi
:~/Documents$
私が見たい唯一のことは:
:~$ cd Documents
:~/Documents$ okular equi.dvi &
:~/Documents$
たぶん、メッセージはバグかもしれません。私は気にしませんし、それについて知りたくありません。
これらのメッセージを表示しない可能性がありますか?
一部の人々はこの質問を「出力を抑制する方法」の質問と重複しているとマークしましたが、これは私が望むものの一部にすぎません。
欲しい自動的に特定のアプリケーションのすべての出力を抑制します。たとえば、okularはグラフィックアプリケーションなので、私の端末で何を言っているのか全く気にしません。
上記のように、私は行動が次のようになりたいです。
:~$ cd Documents
:~/Documents$ okular equi.dvi &
:~/Documents$
そしていいえそれはまるで
:~$ cd Documents
:~/Documents$ okular equi.dvi > whatever &
:~/Documents$
答え1
STDOUTを抑制するには:
yourcommand 1>/dev/null
STDERRの抑制
yourcommand 2>/dev/null
Bash 4からは、次の両方を抑制できます。
yourcommand &>/dev/null
kdedebugdialog
ツールを使用してKDEのデバッグ情報を無効にし、選択したモジュール(またはすべてのデバッグ出力)の出力を無効にすることもできます。
答え2
プログラムのSTDOUTとSTDERRを仮想デバイスに送信できます/dev/null
。
$ okular equi.dvi &> /dev/null &
ジョブ制御メッセージを表示したくない場合は、bashでウォッチモードを無効にします(おそらくあなたのモードでも可能です.bashrc
)。
$ set +m
しかし、私はこれをお勧めしません。再度有効にするにはを使用してくださいset -m
。
答え3
すべてのテキストを非表示にするには、次のコマンドを使用します。
$> yourcommand >/dev/null &
stderrもリダイレクトするには、次のようにします。
$> yourcommand >/dev/null 2>&1 &
答え4
これを使用してください:
okular equi.dvi > /dev/null 2>&1 &
これにより、すべての出力(エラーメッセージと一般出力)が/dev/null
。