2012-06-18 11 views
27

बैश आप एक चर के लिए stderr कैप्चर कैसे करते हैं?बैश आप एक चर के लिए stderr कैप्चर कैसे करते हैं?

मैं अपने bash स्क्रिप्ट

sh -c path/myExcecutable-bin 2>&1 =MYVARIABLE 

कैसे आप एक चर के लिए stderror उत्पादन भेजूँ के इस अंदर की तरह कुछ करना चाहते हैं?

+2

यह StackOverflow [धागा] (http://stackoverflow.com/questions/962255/how-to-store-standard-error-in- ए-वेरिएबल-इन-ए-बैश-स्क्रिप्ट) को आपके प्रश्न का उत्तर देना चाहिए। –

+0

कई संबंधित धागे में से एक देखें, और [कई समाधान] (http://mywiki.wooledge.org/BashFAQ/002) – ormaaj

उत्तर

55

एक चर करने के लिए दोनों stdoutऔरstderr सहेजने के लिए:

MYVARIABLE="$(path/myExcecutable-bin 2>&1)" 

ध्यान दें कि यह एक ही चर में stdout और stderr interleaves।

सिर्फstderr एक चर के लिए सहेजने के लिए:

MYVARIABLE="$(path/myExcecutable-bin 2>&1 > /dev/null)" 
+5

मैं सिर्फ यह ध्यान रखना चाहता हूं कि आप दोनों stderr और stdout को चर में सहेज लेंगे। जब आपको केवल 'stderr' उपयोग' 2> और 1>/dev/null' –

+0

@IgorChubin अच्छा बिंदु चाहिए। मैं ओपी की तरह दिखने के लिए अपने मूल उत्तर का आधार बना रहा था, लेकिन यह जरूरी नहीं है कि वे वास्तव में क्या चाहते थे। मेरे परिवर्तन देखें। –

+0

बहुत यकीन है कि "stdout' _and_' stderr' "होना चाहिए, नहीं? –

संबंधित मुद्दे