मेरे पास एक बहुत लंबी बाश स्क्रिप्ट है जो कुछ बाहरी कमांड (git clone
, wget
, apt-get
और अन्य) को आमंत्रित करती है जो मानक आउटपुट में बहुत सी चीजें प्रिंट करती हैं।मैं शैल स्क्रिप्ट के अंदर लॉग वर्बोजिटी कैसे प्रबंधित करूं?
मैं चाहता हूं कि स्क्रिप्ट में कुछ वर्बोजिटी विकल्प हों, इसलिए यह बाहरी कमांड से सबकुछ प्रिंट करता है, इसका एक सारांशित संस्करण (उदाहरण के लिए "निर्भरता स्थापित करना ...", "संकलन ..." आदि) या कुछ भी नहीं बिलकुल। लेकिन मैं अपने सभी कोड को छेड़छाड़ किए बिना कैसे कर सकता हूं?
मैंने इस के लिए संभावित समाधानों के बारे में सोचा है: एक रैपर फ़ंक्शन बनाना है जो बाहरी आदेशों को चलाता है और प्रारंभ में सेट विकल्पों के आधार पर मानक आउटपुट के लिए आवश्यकतानुसार प्रिंट करता है। यह लागू करने में आसान लगता है, लेकिन इसका मतलब है कोड में बहुत अधिक अव्यवस्था जोड़ना।
दूसरा समाधान सभी आउटपुट को बाहरी फाइलों में भेजना है, और स्क्रिप्ट की शुरुआत में तर्कों को पार्स करते समय, tail -f
उस फ़ाइल पर वर्बोजिटी निर्दिष्ट होने पर चल रहा है। यह लागू करना बहुत आसान होगा, लेकिन मुझे बहुत हैकी लगता है और मैं इसके प्रदर्शन प्रभाव के बारे में चिंतित हूं।
कौन सा बेहतर है? मैं अन्य समाधानों के लिए भी खुला हूं।
आप उपयोग कर '-x सेट माना जाता है '? इस स्क्रिप्ट को अपनी स्क्रिप्ट के शीर्ष पर कॉल करें और प्रत्येक निम्न आदेश को प्रतिबिंबित किया जाएगा। आप इसे 'सेट + एक्स' के साथ बंद कर सकते हैं। –
इसके अतिरिक्त, जब भी कोई आदेश शून्य-शून्य स्थिति से बाहर निकलता है तो आप स्क्रिप्ट को निरस्त करने के लिए 'set -e' का उपयोग भी कर सकते हैं। –
नहीं, मुझे वह चाहिए जो मुझे चाहिए। मुझे पता है कि मैं कौन से आदेश चला रहा हूं, मैं बस अपनी स्क्रिप्ट को उनके द्वारा आउटपुट की सभी चीजों को प्रिंट करने का तरीका चाहता हूं या कुछ विकल्पों के आधार पर नहीं। वास्तविक कोड की तुलना में यह उपयोगकर्ता की अधिक चीज़ है। – Ocab19