タグ付けされた質問 「stderr」

標準エラーは、プログラムがエラーメッセージや診断を出力するために通常使用するもう1つの出力ストリームです。

2
ssh -t上のstderr
これは出力をSTDERRに送信しますが、Ctrl+を伝搬しませんC(つまり、Ctrl+ Cはkillしますsshがリモートはしませんsleep)。 $ ssh localhost 'sleep 100;echo foo ">&2"' これはCtrl+を伝播しますC(つまり、Ctrl+ Cとsshリモートsleepを強制終了します)が、STDERRをSTDOUTに送信します。 $ ssh -tt localhost 'sleep 100;echo foo ">&2"' Ctrl+を伝播させながら、2番目に強制的にSTDERR出力をSTDERRに送信させるにはどうすればよいCですか? バックグラウンド GNU ParallelはCtrl+ を伝播するために「ssh -tt」を使用しますC。これにより、リモートで実行中のジョブを強制終了できます。ただし、STDERRに送信されたデータは、受信側のSTDERRに送信され続ける必要があります。

3
`>> / dev / stderr`(空白あり)と`>&2`の違いは何ですか?
バッシュで。 何を使うべきか判断するのが難しいのですが? 私のすべてのスクリプトは「>> / dev / stderr」を使用します bashのプロンプトで、私がしようとした場合: echo test >>/dev/stderr作品 echo test >> /dev/stderr作品が echo test >/dev/stderr作品 echo test > /dev/stderr作品 echo test >>&2失敗! echo test >> &2失敗! echo test >&2作品は echo test > &2失敗します! すべてのスクリプトをに変更してもかまいません>&2。 また、ssh(後su SomeUser)に大きな影響を与えるようで、>>/dev/stderrまったく機能せず(権限が拒否されます)、機能するだけ>&2です。

3
/ dev / stderrと>&2への出力の送信
スクリプトでは、エラーは通常、を使用してファイル記述子2に送信されます&2。つまり、 echo "error" >&2 時には/dev/stderr代わりに使用されます: echo "error" > /dev/stderr 見て/dev/stderr、私はそれが唯一のシンボリックリンクであることがわかり/proc/self/fd/2順番にへのシンボリックリンクである、/dev/pts/5(私の現在の端末上)。 少し複雑に見えます。その背後にいくつかのロジックがありますか? を使用/dev/stderrして&2同等ですか? 他のものよりも好ましいものはありますか?

4
stdoutとstderrをログファイルにコピーし、スクリプト自体のコンソールに残します。
bashを使用して、stderrとstdoutをログファイルにコピーし、コンソールに表示したままにするにはどうすればよいですか? execを使用して、スクリプト自体の中でこれを実行したいと思います。 私が試した exec &>> log.out echo "This is stdout" echo "This is stderr" >&2 しかし、上記はコンソールに何も出力しません。どうすればこれをbashで実現できますか?
11 bash  exec  stderr 

1
`ドッカーはfooを記録します| less`は検索もスクロールもできませんが、 `docker logs foo 2>&1 | less`は
どちらかを使用すると、読みやすいテキストが得られます。ただし、stderrリダイレクトを使用する場合にのみ、1つのスクロールまたは/ somepatternと入力して一致を取得できます。 検索を行わないと、「検索するものは何もありません(RETURNを押す)」と〜の列が表示されます。 与えられた、stderrとstdoutは同じではありませんが、なぜlessで何かを始めるまで、lessがそれらを同じように表示しないのですか? これは多分私が理解していないいくつかの奇妙なマルチウィンドウvimです。考え?
10 pipe  less  stdout  stderr 

1
STDERRの前にSTDOUTを表示しますか?
私はbashを./fff使い始めたばかりですが、生涯、特定のコマンドを実行する方法を理解することはできません。標準エラー出力の前に、標準エラー出力をstderrの前に出力してください(自分自身の意味について混乱しています)。 例えば $ printf "I am a\ndrill\n" > fff; $ cat fff nofile fff nofile fff I am a drill cat: nofile: No such file or directory I am a drill cat: nofile: No such file or directory I am a drill 次のように印刷する必要があります: I am a drill I am a …

2
コマンドラインアプリケーションで標準エラーストリームを使用する場合
コマンドラインアプリケーションの作成時にエラーを使用する場合のガイドラインはありますか?驚いたことに、ググるときに何も見つかりませんでした。 特に、私が今心配している問題は、ユーザーが不正な引数を使用してプログラムを呼び出すかどうか、stdoutまたはstderrいつ呼び出すかです。ただし、ユーザーが期待するとおりに動作するプログラムを作成するための明確なルールが必要となる唯一のケースではないので、より包括的な答えは非常に高く評価されます。

1
stdoutとstderrを同じファイルのマングル行にリダイレクトできますか?
リダイレクトstdoutを使用stderrして同じファイルにを使用すると2>&1、stdout通常stderrはバッファリングされていないのにブロックバッファリングされると読みました。 非常に長い行がに書き込まれstdout、バッファーの2回のフラッシュが必要な場合、行がstderr途中でずれることがありますか?このようなもの: stdout: aaaaaaaa.....really long line......aaaaaaaaaaaa<newline> stderr: eee<newline> combined: aaaaaaaaaaaaaaaaeee<newline> aaaaaaa<newline>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.