私はコマンドラインで実行するように設計されたいくつかのPythonスクリプトをリファクタリングしています。これらのスクリプトはロギングを使用するため、一部のメッセージがSTDERRに書き込まれます。 LinuxのプログラムはSTDERRに出力しますが、まだ0(成功)終了ステータスを返すのが適切かどうか疑問に思います。終了状態がゼロでない場合にのみSTDERRを参照する必要があると思います。
PS デフォルトでは、スクリプトの出力をキャプチャし、終了状態とともに処理のために別のサービスに送信する必要があります。データが一貫していることを願っています。
ベストアンサー1
はい、プログラムは標準エラーとして出力し、まだゼロ終了ステータスを返すことができます。多くのPOSIXユーティリティの仕様には、「標準エラーは次のようにのみ適用されます。診断情報。 」
STDERRに出力して0を返すプログラムの明確な例は次のとおりです。crontab
。努力する
EDITOR=nano crontab -e 2> stderr.out; echo $?
cronファイルを変更しないでエディタを終了します。0
エコーされますがstderr.out
(私の場合)、次のメッセージが表示されます。
no crontab for user - using an empty one
No modification made