"grep 키워드"로 인해 터미널이 영원히 대기 상태가 되는 이유는 무엇입니까?

"grep 키워드"로 인해 터미널이 영원히 대기 상태가 되는 이유는 무엇입니까?

터미널에 "grep doc"를 입력하면 아무 작업도 수행하지 않고 Ctrl+ C또는 escape를 사용할 때까지 터미널이 다른 작업을 수행하지 못하게 됩니다 Z.

나는 이것이 grep을 사용하는 방법이 아니라는 것을 알고 있지만 왜 이런 일이 발생하는지 궁금합니다.

답변1

grep파일이 제공되지 않으면 기본적으로 표준 입력이 검색됩니다.

grep은 명명된 입력 파일(또는 파일 이름이 지정되지 않은 경우 또는 단일 하이픈 빼기 기호(-)가 파일 이름으로 제공되는 경우 표준 입력)에서 지정된 PATTERN과 일치하는 행을 검색합니다. 기본적으로 grep은 일치하는 줄을 인쇄합니다.

grep을 수행하면 grep docstdin이 나타나서 검색할 것으로 예상됩니다( 터미널에서 <와 사이에 >입력 하지 마십시오. 주석입니다).

$ grep doc
a b c <PRESS ENTER HERE>
doc <NO MATCH WAS FOUND IN PREVIOUS LINE, TYPE doc AND PRESS ENTER AGAIN>
doc <MATCH WAS FOUND>

답변2

grep입력을 기다리고 있습니다.

에서 man grep:

[...]
DESCRIPTION
       grep  searches  the named input FILEs (or standard input if no files are named
[...]

관련 정보