Câu trả lời:
Bất kỳ phiên bản tuân thủ POSIX nàogrep đều có công tắc -qđể yên lặng:
-q
     Quiet. Nothing shall be written to the standard output, regardless
     of matching lines. Exit with zero status if an input line is selected.
Trong GNU grep (và có thể cả những người khác), bạn cũng có thể sử dụng các từ đồng nghĩa tùy chọn dài:
-q, --quiet, --silent     suppress all normal output
Chuỗi tồn tại:
$ echo "here" | grep -q "here"
$ echo $?
0
Chuỗi không tồn tại:
$ echo "here" | grep -q "not here"
$ echo $?
1
              Bạn chỉ cần kết hợp grep -q <pattern>với kiểm tra ngay lập tức mã thoát cho quy trình cuối cùng để thoát ( $?).
Bạn có thể sử dụng điều này để xây dựng một lệnh như thế này, ví dụ:
uname -a | grep -qi 'linux' ;  case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error" ;; esac
Bạn có thể tùy ý chặn đầu ra từ STDERRnhư vậy:
grep -qi 'root' /etc/shadow &> /dev/null ;  case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error: $?" ;; esac
Điều này sẽ in error: 2từ casetuyên bố (giả sử chúng tôi không có đặc quyền để đọc /etc/shadowhoặc tệp không tồn tại) nhưng thông báo lỗi từ grepsẽ được chuyển hướng đến /dev/nullvì vậy chúng tôi không bao giờ nhìn thấy nó.
echo $?nếugreptrả về mã thoát khác không.