コマンドの実行時に端末出力を非表示にする方法は?


62

11.10でEclipseやドキュメントビューアーなどのコマンドラインから特定のプログラムを起動すると、重要でない情報が大量に出力されます。

また、バックグラウンドで実行されると、現在作業中の端末に出力を生成し続けることがありますが、これはいらいらします。

ただ起動して、バックグラウンドのものをバックグラウンドに保持してください。私の推論では、これらのプログラムをGUIから起動した場合(アイコンをダブルクリックした場合など)、これらのメッセージは表示されないため、コマンドラインでこれらのメッセージは必要ありません。


回答:


81

コンソールでの記述を避けることができる場合、プログラムからの出力の作成方法に依存します。それが標準出力にストリーミングされる場合、それで十分です

$ eclipse >/dev/null

出力は行われません。

エラーメッセージも抑制するには:

$ eclipse >/dev/null 2>&1

または単純に:

$ eclipse &>/dev/null

しかし、彼らが何らかの方法でそれを行う場合、コンソールでの書き込みを停止することが問題になる可能性があります。

可能であれば、MuffinStateWideが提供するソリューションを使用してください


2
それeclipse 2&>1 >/dev/nullを取り除きたいと思うかもしれませんstderr。デフォルトはリダイレクトのみstdoutです。また、それを行うための「異なる」方法はありません。stdoutとstderrの両方をネザーにパージすると、出力はありません。
-TC1

@ TC1原則として、プログラムは/ dev / ttyを再度開き、そこに出力を出力できます。実際には、GUIプログラムはそれを行いません。
Random832

@ Random832まあ、原則として、その標準エラー出力を/ dev / dspにパイプするか、余分なlulzを再生することをお勧めします...少なくともそれをやった人にやや失礼なメールを書いてください。
TC1

5
@ TC1 "2>&1> / dev / null"はstdoutをビットバケットにリダイレクトしますが、stderrはリダイレクトされません。順序を逆にして実行する必要があります: "> / dev / null 2>&1"
-William Pursell

9
次のこともできますeclipse &> /dev/null。これは、stdinとstderrの両方をリダイレクトポイント(bash)にキャッチします。
ウォーレン

12

コマンド名のエイリアスを作成し、必要な機能を追加するための追加機能を追加するbash関数を作成できます。

例:gvimコマンドラインから起動(GUIテキストエディター)したいとしましょう。

次のような関数を書くことができます。

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

(この関数を.bashrcorに追加して、.bash_aliases常にロードされるようにします)

説明:

  • これにより、gvimコマンドにbash関数の別名が付けられますgvimgvimbashプロンプトで入力gvimすると、実際のgvimコマンドを実行するのではなく、関数が呼び出されます。関数はその後、実際のgvimコマンドを呼び出します(通常の引数を受け入れます)。追加された機能:

    • stdoutとstderrをリダイレクトします/dev/null(端末への出力を抑制します)
    • &バックグラウンドでコマンドを実行するために使用します(したがって、シェルはブロックされません)
    • disownバックグラウンドジョブをシェルから削除するために使用します(したがって、アクティブなジョブのリストに表示されません)
    • nohupプロセスをターミナルからデタッチするために使用します(プロセスを強制終了せずにシェルセッションを終了するか、ターミナルを閉じることができます)

ところで、これは@Misery
Corey Goldbergの

6

コマンドスイッチとして--helpを追加して、「quiet」を探します。これにより出力が抑制されるか、GUIから起動します。スイッチで起動するか、スクリプトでそれを抑制する方法を見つけます

個人的に私はその出力を得るためにCLIから起動しますので、すべてのGUIアプリで可能かどうかわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.