직관적으로 모두 나와 비슷하게 들리기 때문에 이것은 매우 중요합니다.
사람들은 이 둘이 나와 정말로 비슷하다는, 즉 절대적으로 동등하다는 것을 깨달을 수 있을까?
답변1
그들은 단순히 같은 일을 하지 않습니다. 전자는 명령 대체이고 후자는 파이프라인입니다. 결과는 완전히 다릅니다.
grep foo "$(echo foo)"
"foo" 는 입력에서 "foo"라는 단어를 찾기 때문에 "foo"라는 파일에서 "foo"라는 단어 를 찾습니다 echo
. 전자의 경우 파일을 찾을 수 없다는 오류가 발생할 수 있습니다. 후자의 경우에는 그렇지 않습니다. 그것들은 근본적으로 동일한 작업이 아닙니다.echo foo | grep foo
STDIN