GNU/Linux >> Linux の 問題 >  >> Linux

Linux でシェル アプリケーションの出力を非表示にするにはどうすればよいですか?

解決策 1:

見られないように、任意のプログラムの出力をリダイレクトできます。

$ program > /dev/null

これにより、標準出力がリダイレクトされます - それでもエラーが表示されます

$ program &> /dev/null

これにより、エラーを含むすべての出力がリダイレクトされます。

解決策 2:

コマンド ラインで使用できる I/O デバイスは 3 つあります。

 standard input  - 0
 standard output - 1
 standard error  - 2

標準出力 (デフォルト出力) をファイルにリダイレクト (およびファイルを上書き) するには、

を使用します。
 command > file.log

file.log に追加するには、2 つの > を使用します

 command >> file.log

標準エラーを file.log にリダイレクトするには、

を使用します。
 command 2> file.log

そして追加する

 command 2>> file.log

出力を 1 つのストリームに結合し、それらすべてを 1 つの場所に送信するには

 command > file.log 2>&1

これにより、2 (標準エラー) が 1 (標準出力) に送信され、標準出力が file.log に送信されます。

標準入力を期待するコマンドに標準入力をリダイレクトすることもできることに注意してください

 command << file.txt


詳細については、高度な Bash スクリプト ガイドをご覧ください。

解決策 3:

標準出力を隠す:

./command >/dev/null

標準出力と標準エラーを非表示:

./command >/dev/null 2>&1

標準出力と標準エラーを非表示にし、端末を解放します (バックグラウンドでコマンドを実行します):

./command >/dev/null 2>&1 &

解決策 4:

出力を非表示にする (ファイルに保存しない) だけの場合は、次を使用できます。

編集:

$ コマンド &> /dev/null

解決策 5:

Mac OS X v10.6 (Snow Leopard) の場合:

出力/エラー ファイル記述子をチェックして、プログラムに知らせずに出力を非表示にする必要がある場合は、シェルで次のコマンドを試すことができます:

stty flusho; command ;stty -flusho

または、端末からの入力を隠したいだけの場合:

stty  -echo; command ;stty  echo

詳細については、stty(1) マニュアル ページを参照してください。

Linux の場合、私が知っているのは、Ubuntu 10.04 (Lucid Lynx) と一部の Debian/Arch Linux (以下にコメント - ありがとう、ヘンドリー) には flusho がないということだけです。 設定します(マンページには他に適切なものはありません)。 echo いずれにせよ、設定は Ubuntu で機能します。


Linux
  1. コマンドの出力をシェル変数に割り当てる方法は?

  2. Linux のシェル出力を HTML に変換するには?

  3. Linuxシェルで変数を使用して除算を行うにはどうすればよいですか?

  1. tcpdump でファイルに書き込み、標準出力に適切なデータを出力するにはどうすればよいですか?

  2. Python - Supervisor で標準出力をログに記録する方法 -

  3. Linux で $PATH を編集するにはどうすればよいですか?

  1. LinuxでMimeタイプのアプリケーションを見つける方法は?

  2. Linuxでアプリケーションによるメモリ使用量を制限するには?

  3. 成功した場合にのみシェル コマンドの出力を非表示にしますか?