के अंदर stdout और stderr को पुनर्निर्देशित करना मैं एक स्क्रिप्ट के आउटपुट को किसी भिन्न प्रोग्राम पर रीडायरेक्ट करना चाहता हूं। कुछ मैं सामान्य रूप से इन दो रूपों का उपयोग कर करना होगा:मेकफ़ाइल नियम
[Makefile]
test:
python test.py 2>&1 | pyrg [doesn't work]
मुझे लगता है कि काम करता है एक स्क्रिप्ट फ़ाइल लेखन से बचने के लिए चाहते हैं:
python test.py 2>&1 | pyrg
python test.py |& pyrg
मेरे समस्या यह है कि यह एक makefile अंदर से काम नहीं करता है ।
संपादित करें:
python test.py 2>&1 | tee test.out // Writes to the file both stderr and stdout
cat test.out | pyrg // Works fine!
python test.py 2>&1 | pyrg // pyrg behaves as if it got no input
यह मेरे लिए एक बुरा समाधान के रूप में मैं कभी नहीं एक परीक्षण विफलता के मामले में cat
भाग के लिए मिलता है (सब कुछ है:
यह एक pyrg
मुद्दे की तरह लगता है मेकफ़ाइल नियम के अंदर)
यह काम करना चाहिए। 'मेक' पूरी लाइन को व्याख्या के लिए '/ bin/sh' तक पास करती है, इसलिए यह खोल जो कुछ भी है (जिसे आपका उपयोगकर्ता खोल नहीं होना चाहिए) काम को समझ सकता है। –
बिल्कुल यह कैसे काम नहीं करता है? अपने मेकफ़ाइल में कहीं भी 'निर्यात SHELL: =/bin/bash' सेट करने का प्रयास करें। –
दूसरा आदेश चलता है जैसे कि इसे 'stdin' से कोई इनपुट प्राप्त नहीं हुआ। और यह वास्तव में पहले से पहले चलता है। '|' के बजाय '||' का उपयोग करना आदेश को बनाए रखता है लेकिन फिर भी 'pyrg' को इनपुट नहीं मिलता है। – Xyand