답변:
모든 의 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
반환 0이 아닌 종료 코드입니다.