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

7
cURL:リダイレクト時に奇妙な出力を抑制する方法は?
stderrbashシェルからcURLリクエストの詳細セクション(に送信される)のみを印刷しようとしています。 しかし、私stdoutがこのようにリダイレクトすると: curl -v http://somehost/somepage > /dev/null 何らかの結果テーブルが、出力の中央に表示されますstderr: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 終わり近くにこれが続きます: { [data not shown] 118 592 0 592 0 0 15714 …


4
一部のLinuxプログラムの出力がSTDOUTとSTDERRのどちらにも出力されないのはなぜですか?
一部のLinuxプログラムの出力がSTDOUTとSTDERRのどちらにも出力されないのはなぜですか? 実際、使用する「ストリーム」に関係なく、すべてのプログラム出力を確実にキャプチャする方法を知りたいです。私が抱えている問題は、一部のプログラムが出力をキャプチャさせないように見えることです。 例は「time」コマンドです。 time sleep 1 2>&1 > /dev/null real 0m1.003s user 0m0.000s sys 0m0.000s または time sleep 1 &> /dev/null real 0m1.003s user 0m0.000s sys 0m0.000s 両方の時間に出力が表示されるのはなぜですか?すべてが/ dev / nullにパイプされると予想しました。 どの出力ストリームを使用していますか?また、どのようにファイルにパイプできますか? 問題を回避する1つの方法は、たとえば次のコマンドを含むBashスクリプトを作成することですcombine.sh。 $@ 2>&1 次に、「時間」の出力を正しい方法でキャプチャできます。 combine.sh time sleep 1 &> /dev/null (出力が表示されない-正しい) 別の結合スクリプトを使用せずに、私が望むものを達成する方法はありますか?
21 linux  bash  gnu  stdout  stderr 

7
Linuxの少ない動作とstderr
で複雑なコマンドの出力を監視しています。less問題は、stderr失われることです。stderr行は通常、stdout内の行の間にリストされlessます。それらをコンソールに出力し、終了時にlessそれらを一緒に表示したいと思います。 私はこれに対する解決策がないかもしれないことに気づきました、私は読んで、teeそしてmultitee今のところ運がありません。
11 less  stderr 

1
PowerShellとTee
このコマンドを使用して、コンソールとファイルの両方に出力を表示します。 powershell -command "my_command_1 | tee ('logs\{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))" powershell -command "my_command_2 | tee ('logs\{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))" # etc それは私が期待したほどうまく機能せず、いくつかの質問があります: stderrをファイルにリダイレクトするにはどうすればよいですか? 出力は非常に奇妙に機能します。一部のコマンドでは、テキストが出力されてからコンソール/ファイルが更新されるまでに大きな遅延があります。他のいくつかのコマンドでは、テキストが印刷されるときに出力が更新されたように見えます(私はT字なしでコマンドを実行し、何を印刷する必要があるかを知っています)。この遅延により、このTシャツはほとんど役に立たなくなります。重大なエラーが出力されるため、コマンドを停止する必要がありますが、手遅れになるまで何も表示されません。 コマンドによっては、完全なコマンドが実行された後にのみ出力が出力されます。 さらに、コマンドがユーザー入力を要求しても、コンソール/ファイルの出力は空です!そのコマンドについて私はそれが期待するものを知っていて、必要なテキストを盲目的に印刷してそれが機能しましたが、他の人のために-コマンドが入力を待つ間、私は何かが無限に起こるのを待ちます! これらの問題の解決策はありますか?そうでない場合、PowerShellのこのT型のものはまったく役に立ちません。

6
stderrに送信された出力をすぐに通知する
タスクを自動化する場合、最初に手動でテストするのが賢明です。ただし、stderrに送られるデータがそのようにすぐに認識され、stdoutに送られるデータと区別可能で、すべての出力を一緒にしてイベントのシーケンスが何であるかが明らかである場合に役立ちます。 最後に良いのは、プログラムの終了時に戻りコードが出力された場合です。 これらはすべて自動化に役立ちます。はい、プログラムの終了時に戻りコードをエコーできます。また、はい、stdoutとstderrをリダイレクトできます。stdoutを黒で表示し、stderrをインターリーブして赤で表示し、終了コードを最後に出力するシェル、スクリプト、または使いやすいリダイレクターです。 そのような獣はいますか?[問題がある場合は、Mac OS XでBash 3.2を使用しています]。 更新:すみません、これを見てから数か月が経ちました。私は簡単なテストスクリプトを思いついた: #!/usr/bin/env python import sys print "this is stdout" print >> sys.stderr, "this is stderr" print "this is stdout again" 私のテストでは(おそらく物事のバッファリング方法が原因で)、rseとhiliteはstdoutからすべてを表示し、次にstderrからすべてを表示します。fifoメソッドは正しい順序を取得しますが、stderr行に続くすべてのものを色付けするように見えます。indがstdinとstderrの行について文句を言い、次にstderrからの出力を最後に置きました。 これらの解決策のほとんどは、最後の出力だけがstderrに送られることは一般的ではないため、実行可能ですが、それでも、少しだけうまく機能するものがあるとよいでしょう。
8 bash  colors  stderr 

1
Linuxシェル:標準エラーメッセージにプレフィックス文字列を追加する方法?
バックグラウンドで同時に複数のタスクを実行しています。 command_a | tee > command_a.log & command_b | tee > command_b.log & すべて問題なければ、メッセージはログファイルに保存されます。 何か問題があると、画面にエラーが表示されます。 しかし、command_aとcommand_bは非常によく似ているので、どのエラーメッセージがどのコマンドによって生成されるのかを判断するのは困難です。 次のように、エラーメッセージにプレフィックス文字列を追加できますか。 command_a: error 123 command_b: error 456 command_a: error 256 command_a: error 555 command_b: error 333
3 shell  stderr 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.