grep foo $(CMD)와 CMD grep foo의 근본적인 차이점은 무엇입니까?

grep foo $(CMD)와 CMD grep foo의 근본적인 차이점은 무엇입니까?

직관적으로 모두 나와 비슷하게 들리기 때문에 이것은 매우 중요합니다.

사람들은 이 둘이 나와 정말로 비슷하다는, 즉 절대적으로 동등하다는 것을 깨달을 수 있을까?

답변1

그들은 단순히 같은 일을 하지 않습니다. 전자는 명령 대체이고 후자는 파이프라인입니다. 결과는 완전히 다릅니다.

grep foo "$(echo foo)""foo" 는 입력에서 "foo"라는 단어를 찾기 때문에 "foo"라는 파일에서 "foo"라는 단어 를 찾습니다 echo. 전자의 경우 파일을 찾을 수 없다는 오류가 발생할 수 있습니다. 후자의 경우에는 그렇지 않습니다. 그것들은 근본적으로 동일한 작업이 아닙니다.echo foo | grep fooSTDIN

관련 정보