次のコマンドを実行します。
pkg_add emacs-23.4,2.tbz 2> output.log
出力は依然として端末に表示されます。押すと↑手に入る
pkg_add emacs-23.4,2.tbz 2 > output.log
前にスペースがあります。2
。
最初はこれを入れませんでした。頑張る
pkg_add emacs-23.4,2.tbz > output.log 2>&1
↑もう一度押すと追加されたスペース。
私にとってなぜこれが起こったのですか?
私はFreeBSDでcshを実行しています。
ベストアンサー1
STDERRを非表示にするのかSTDOUTにリダイレクトしたいのかわかりません。
STDOUTをファイルにリダイレクトするには:
pkg_add emacs-23.4,2.tbz > stdout.log
STDOUTとSTDERRをファイルにリダイレクトするには:
pkg_add emacs-23.4,2.tbz > & stdxxx.log
STDOUTをファイルにリダイレクトしてSTDERRを非表示にするには、次のようにします。
( pkg_add emacs-23.4,2.tbz > stdout.log ) > & /dev/null
STDOUTをコンソールにリダイレクトし、STDERRを非表示にします。
( pkg_add emacs-23.4,2.tbz > /dev/tty ) > & /dev/null
STDOUTをコンソールにリダイレクトし、STDERRをファイルにリダイレクトします。
( pkg_add emacs-23.4,2.tbz > /dev/tty ) > & stderr.log
STDOUTをファイルにリダイレクトし、STDERRをファイルにリダイレクトします。
( pkg_add emacs-23.4,2.tbz > stdout.log ) > & stderr.log
編集:その理由は、()内部の作業が最初に発生するためです。したがって、STDOUT をリダイレクトすると () 外部で使用できなくなります。これによりSTDERRが残り、必要に応じてリダイレクトできます。