كيف يمكنني استخدام جهاز النداء الخاص بي (أكثر/أقل) في إخراج الأخطاء فقط
-
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.
لا تنتمي إلى StackOverflow