私は、あらかじめ定義されたデータセットを処理してファイルに出力するスクリプトを作成しています。私は1つのデータム(アクセスしたすべてのセットで常に「通常」である)が、この値が処理されていない(データにどのように影響するかわからないので)ということが違うと警告をポップアップしたい。この警告をstderrまたはstdoutに出力すべきですか?STDERRまたはSTDOUTに警告を出力する必要がありますか?
21
A
答えて
27
このスクリプトの出力(つまりstdoutのみ)を後で処理できるように保存した場合、その警告は出力の解析方法を妨げますか?さらに、出力が別のプロセスにパイプされている場合は、警告が端末に表示されるため、ユーザはすぐにそれを認識します。
これらの理由から、一般に、警告はstderrに出力されます。
1
実際の質問は、あなたのスクリプトの出力をファイルにリダイレクトする場合、その警告をファイルに入れるか、ユーザーに指示するかです。
警告の結果、ユーザーが何らかの処置を取ることを期待している場合は、STDERRに進む必要があります。一部のダウンストリームスクリプトが警告によってトリップされる可能性が高い場合は、STDERRに移動する必要があります。
4
警告はstderrに送られます。
他人から提示された点に加えて(ダウンストリームプロセスの解析エラーを引き起こし、コンソールのユーザーからエラーを隠す)、柔軟性の問題があります。
stderrの警告をstdoutを解析しているダウンストリームプロセスに移動させたくない場合、ユーザーは特別な操作を行う必要はありません。
your_script | downstream_process
ユーザーが標準エラー出力からの警告は、stdoutとstderrを解析する下流のプロセスに行きたい場合は、ユーザーが標準出力に標準エラー出力をリダイレクトする2> & 1を使用することができます。
your_script 2>&1 | downstream_process
stdoutに警告し、任意の通常のデータの両方あなたが出力した場合、ユーザーはすべてのものを解析することなく、データからの警告を分離する良い方法はありません。 警告をstderrに送ると、スクリプトの柔軟性も向上します。
関連する問題
- 1. stderrまたはstdoutにメッセージを記録する必要がありますか?
- 2. subprocess.Popen()を使用すると、stderrとstdoutに出力がありません
- 3. pythonでstdoutまたはstderrを出力するsetUpClass
- 4. bashがログにSTDOUT + STDERR、通常の宛先にSTDERRが必要
- 5. ビルド出力にメッセージを出力する(警告ではありません)
- 6. STDOUTまたはSTDERRではないプログラム出力?
- 7. Androidの警告ダイアログはいつ起動する必要がありますか?
- 8. コマンドラインプログラムでstdoutのエンコーディングが不明な場合は、どのエンコーディングを出力する必要がありますか?
- 9. この警告メッセージで心配する必要がありますか?
- 10. graphQL - タイプは出力タイプである必要があります
- 11. 私はカラーテキストを出力する必要があります
- 12. トレース情報をstdoutまたはstderrに出力するようにInformixに指示できますか?
- 13. Spring LDAP ODM - エントリクラスを最終宣言する必要があります警告
- 14. stdout、stderr、stdout + stderrを同期して保存します
- 15. 既にstrictを使用している場合は警告を使用する必要がありますか?
- 16. 1人のユーザーがセキュリティ警告を6回アプレットするにはOKをクリックする必要があります
- 17. Visual Studioでstderrとstdoutをキャッチする方法はありますか?
- 18. F#:警告FS0020:この式は 'unit'タイプである必要がありますが、タイプは 'bool'です。
- 19. stdoutとstderr io-redirectionを使用してプログラムから正常なエラー/警告メッセージを出力するにはどうすればよいですか?
- 20. マップリデュースの出力をモンゴイド文書にする必要がありますか?
- 21. 、出力または入力ストリームにコマンドを書き込む必要がありますか?
- 22. Intellij IDEAのstderrとstdoutのコンソールが異なりますか?
- 23. Grails SpockテストでSTDOUTに出力する方法はありますか?
- 24. 各入出力後にDataInputStreamまたはDataOutputStreamを再作成する必要がありますか?
- 25. はNCFTPシェルスクリプトに入力する必要があります
- 26. 開いているグラフの警告は修正する必要がありますか?
- 27. ボックスに入力された言語の文字またはテキストを検出する必要があります
- 28. AndroidStudio mouseoverの警告 - 詳細についてはキーストロークを変更する必要があります
- 29. 私のiPhone Appには "No Network Connectivity"警告を使用する必要があります
- 30. ポストビルドツールの出力からプロジェクトエラーリストに警告を追加します。
だから、関係なく、stderrに行く必要がありますか?あるいは、STDERRへの2つの参照のうちの1つをSTDOUTにするつもりでしたか? –
私は両方でSTDERRを意味しました。彼らはあなたがかなりstderrにそれを送る必要がある2つのケースです。私がそれを標準出力にしたいと考えることができる唯一の時間は、スクリプトの出力が人間の消費のためであるかどうかです(多分出力を電子メールで誰かに見せて、それを調べることです)。 stderrをリダイレクトするのを覚えておく必要はありません。 – Martin