كيف يمكنني استخدام جهاز النداء الخاص بي (أكثر/أقل) في إخراج الأخطاء فقط

StackOverflow https://stackoverflow.com/questions/61871

  •  09-06-2019
  •  | 
  •  

سؤال

لدي برنامج يقوم بإخراج الخطأ القياسي والخطأ القياسي، وأريد تشغيل جهاز النداء الخاص بي بشكل أقل عند الخطأ القياسي، ولكن يتجاهل معيار خارج.كيف يمكنني فعل ذلك؟

تحديث:

هذا كل شيء ...لم أكن أريد أن أخسر ستديوت ...فقط احفظه بعيدًا عن جهاز النداء

program 2>&1 >log | less

ثم في وقت لاحق

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

المحلول

يمكنك محاولة إعادة توجيه المعيار إلى /dev/null، ولكن إعادة توجيه الخطأ القياسي إلى المكان الذي كان يذهب إليه المعيار.

مثال في ksh/bash:

program 2>&1 >/dev/null | less

هنا يتم تقييم إعادة التوجيه 2>&1، التي تقوم بتعيين واصف الملف 2 (stderr) للإشارة إلى نفس الدفق مثل واصف الملف 1 (stdout)، قبل إعادة التوجيه >/dev/null ، والتي تحدد واصف الملف 1 للإشارة إلى /dev/null.والنتيجة هي أن ما تكتبه إلى stderr يتم إرساله إلى stdout، ويتم التخلص من ما تكتبه إلى stdout.

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