मेरे पास एक शेल स्क्रिप्ट है जिसमें set -x
क्रिया / डिबग आउटपुट है:
#!/bin/bash
set -x
command1
command2
...
आउटपुट इस तरह दिखता है:
+ command1
whatever output from command1
+ command2
whatever output from command2
मेरी समस्या है, खोल निर्गम (की वजह से set -x
) stderr, आदेशों की निर्गम (के साथ मिश्रित करने के लिए चला जाता है command1
, command2
, ...)। मुझे स्क्रीन पर "सामान्य" आउटपुट (बिना स्क्रिप्ट के जोर-शोर से चलने set -x
) और "अतिरिक्त" बैश के आउटपुट को एक फाइल में अलग करने में खुशी होगी ।
इसलिए मैं इसे स्क्रीन पर रखना चाहूंगा:
whatever output from command1
whatever output from command2
और यह एक लॉग फ़ाइल में:
+ command1
+ command2
(यह भी ठीक है अगर लॉग फ़ाइल में सब कुछ एक साथ है)
set -x 2> file
जाहिर है doens't, सही प्रभाव में लाने क्योंकि यह सेट आदेश के उत्पादन में नहीं है, लेकिन यह पार्टी का व्यवहार बदलने के।
bash 2> file
संपूर्ण स्क्रिप्ट का उपयोग करना भी सही काम नहीं करता है, क्योंकि यह प्रत्येक कमांड के स्टडर को पुनर्निर्देशित करता है जो इस शेल में भी चलता है, इसलिए मुझे कमांड का त्रुटि संदेश दिखाई नहीं देता है।