आवश्यक मदद - एक GNU / LINUX बैश पर शेल स्क्रिप्टिंग के संदर्भ में:
मैं हमेशा उपयोग करता हूं set -e
। अक्सर, मैं grep
चाहता हूं कि स्क्रिप्ट को निष्पादन को समाप्त करने के लिए हमेशा नहीं करना चाहिए अगर संकेत पैटर्न grep
का एक निकास स्थिति 1
नहीं मिली है।
इस समस्या को हल करने के लिए मैंने जो प्रयास किए हैं, वे इस प्रकार हैं:
(I प्रयास करें)
अगर set +o pipefail
कुछ के साथ grep आह्वान करें और grep 'p' | wc -l
तब तक वांछित व्यवहार प्राप्त करें, जब तक कि भविष्य का अनुचर सक्षम न हो जाए pipefail
। इसके अलावा, मुझे सक्षम करना पसंद है pipefail
इसलिए यह मेरे लिए काम नहीं करता है।
(II आज़माएं) मिलान पैटर्न के परीक्षण के लिए
एक sed
या awk
केवल प्रिंट लाइनों से मेल खाते पैटर्न का उपयोग करें , फिर wc
मिलान की गई रेखाएं। मैं इस विकल्प को पसंद नहीं है क्योंकि का उपयोग कर sed
के लिए grep
मेरा सच्चा समस्या के लिए एक समाधान की तरह लगता है।
(III का प्रयास करें)
यह मेरी सबसे कम पसंदीदा है - कुछ इस तरह:set +e; grep 'p'; set-e
किसी भी अंतर्दृष्टि / मुहावरों की सबसे अधिक सराहना की जाएगी - धन्यवाद।