سؤال

وأنا صنع السيناريو الذي يعالج مجموعة محددة مسبقا من البيانات، إخراج إلى ملف. أريد أن يطفو على السطح تحذير عند مسند واحد (والذي هو دائما "منتظم" في كل مجموعة أن لقد كان الوصول إلى) مختلفة مشيرا إلى أن هذه القيمة هي غير معالج (بما أنني لا أعرف كيف يؤثر على البيانات). يجب أن إخراج هذا التحذير إلى ستدير أو المعياري؟

هل كانت مفيدة؟

المحلول

إذا كنت حفظ إخراج هذا السيناريو (أي المعياري فقط) كي أتمكن من معالجة في وقت لاحق، أن يتدخل هذا التحذير مع كيفية تحليل الإخراج؟ وعلاوة على ذلك، إذا تم ضخها الإخراج إلى عملية أخرى، يجب أن تظهر هذا التحذير حتى على المحطة، بحيث يرى المستخدم على الفور.

لهذه الأسباب، بشكل عام، كنت تحذيرات إخراج لستدير.

نصائح أخرى

وهذا التحذير يجب ان تذهب الى ستدير.

وبالإضافة إلى النقاط التي قدمها آخرون (يسبب أخطاء الاعراب عن عمليات المصب وإخفاء خطأ من المستخدم في وحدة التحكم)، هناك مسألة المرونة.

إذا كان المستخدم لا يريد التحذير من ستدير للذهاب إلى عملية المصب الذي تحليل المعياري، فإنها لا تملك ان تفعل شيئا خاصا.

your_script | downstream_process

إذا كان المستخدم يريد التحذير من ستدير للذهاب إلى عملية المصب من شأنها أن تحليل المعياري وستدير، يمكن للمستخدم استخدام 2> & 1 إعادة توجيه ستدير إلى المعياري.

your_script 2>&1 | downstream_process

إذا إخراج كل من تحذيرات وأية بيانات العادية إلى المعياري، المستخدم لديه أي وسيلة جيدة لفصل تحذيرات من البيانات دون تحليل كل شيء. لذلك إرسال تحذيرات إلى ستدير يعطي السيناريو الخاص بك مزيد من المرونة أيضا.

والسؤال الحقيقي هو: إذا كان هناك شخص لتوجيه الإخراج من البرنامج النصي إلى ملف، هل تريد التحذير وضعها في ملف، أو توجيه للمستخدم

إذا كنت تتوقع من المستخدم اتخاذ بعض الإجراءات نتيجة لهذا التحذير، فإنه يجب أن تذهب إلى STDERR. إذا كان من المرجح أن تعثرت من قبل تحذير بعض النصي المصب، يجب أن تذهب إلى STDERR.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top