जवाबों:
किसी भी POSIX आज्ञाकारी संस्करण मेंgrep
-q
चुप के लिए स्विच है:
-q
Quiet. Nothing shall be written to the standard output, regardless
of matching lines. Exit with zero status if an input line is selected.
GNU grep (और संभवतः अन्य) में आप लंबे समय तक पर्यायवाची पर्यायवाची शब्द का उपयोग कर सकते हैं:
-q, --quiet, --silent suppress all normal output
स्ट्रिंग मौजूद है:
$ echo "here" | grep -q "here"
$ echo $?
0
स्ट्रिंग मौजूद नहीं है:
$ echo "here" | grep -q "not here"
$ echo $?
1
बस आपको grep -q <pattern>
अंतिम प्रक्रिया से बाहर निकलने के लिए तत्काल कोड की तत्काल जांच के साथ संयोजन करना होगा ( $?
)।
आप इसका उपयोग इस तरह से एक कमांड बनाने के लिए कर सकते हैं, उदाहरण के लिए:
uname -a | grep -qi 'linux' ; case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error" ;; esac
आप वैकल्पिक रूप से आउटपुट को इस STDERR
तरह से दबा सकते हैं :
grep -qi 'root' /etc/shadow &> /dev/null ; case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error: $?" ;; esac
यह कथन error: 2
से प्रिंट होगा case
(यह मानते हुए कि हमारे पास पढ़ने के लिए विशेषाधिकार नहीं हैं /etc/shadow
या यह फ़ाइल मौजूद नहीं है) लेकिन त्रुटि संदेश से grep
रीडायरेक्ट किया जाएगा /dev/null
ताकि हम इसे कभी न देखें।
echo $?
यदिgrep
कोई गैर-शून्य निकास कोड लौटाता है तो यह विफल हो जाएगा ।