이 링크는 관련이 있습니다bash 대체와 파이프의 차이점은 무엇입니까?하지만 나는 말하는 내용을 모두 잘 이해하지 못합니다.
command1 | command2
파이프 명령과 확장 명령의 차이점은 무엇입니까 command2 $(command1)
? 예를 들어
vi $(find /home | grep xyzzy)
편집을 위해 결과를 vi로 출력하는 반면
find /home | grep xyzzy | vi
나에게는 효과가 없는 것 같습니다. 그러나 나는 근본적인 차이점을 이해하지 못합니다.
편집하다
기타 관련 게시물
답변1
A|B
A와 B는 (병렬로) 실행되며 A의 표준 출력이 B의 표준 입력으로 공급됩니다.
A $(B)
쉘은 먼저 B를 실행하고 B의 표준 출력을 수집한 다음 A를 실행하지만 이 실행을 위해 개별 단어를 A의 ARGV 벡터에 할당합니다(즉, A는 C 및 기타 언어에서 알려진 공통 argv 메커니즘을 통해 단어에 액세스할 수 있습니다).
두 경우 모두 두 개의 프로그램 A와 B가 관련되어 있다는 점을 제외하고는 그들 사이에 어떤 유사점도 보이지 않습니다.
답변2
첫 번째는 vi <list_of_filenames>
.
두 번째 는 파일 이름을 vi
. vi
물론 텍스트를 파이프로 연결할 수 있지만 vim
이는 파일 이름 자체가 아니라 처리할 텍스트로 해석됩니다. (를 사용해야 합니다 vim -
. man vim
자세한 내용은 참고자료를 참조하세요.)