解決策 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 で機能します。