आवश्यक मदद - एक 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
किसी भी अंतर्दृष्टि / मुहावरों की सबसे अधिक सराहना की जाएगी - धन्यवाद।