우리가 알고 있듯이 다음 명령의 출력은 less --help | grep -i examine
파일로 리디렉션됩니다.더 적은 수의 파일을 확인하세요.BODMAS rule
, 리눅스는 수학에서와 유사한 보편적인 연산 순서를 사용합니까 ?
less --help | grep -i examine > examine-files-in-less
답변1
파이프라인과 관련된 모든 명령(예: 문제의 명령)은 (거의) 동시에 시작됩니다.
이는 파이프라인의 명령이 예를 들어 다음과 같다는 것을 의미합니다.
find . ...some other arguments... | sort | uniq -c | sort -nr
모두 병렬로 실행됩니다.
그러나 한 명령의 출력은 다음 명령의 입력이고 명령은 입력이 전달되고 출력이 소비될 때까지 기다리므로 데이터는 파이프라인에서 명령을 동기화합니다.
예를 들어, 위 파이프라인에서 마지막 파이프라인은 실행되지만 sort
첫 번째 파이프라인이 모든 출력을 소비할 때까지 많은 작업을 수행하지 않습니다(정렬 작업에는find
sort
모두사용 가능한 데이터를 읽었습니다).
따라서 데이터는 왼쪽에서 오른쪽으로 정렬되어야 합니다.처리배관으로 완성하였습니다.
list와 같은 다른 복합 명령에서
ls -l; cat somefile
이는 다음과 같습니다.
ls -l
cat somefile
왼쪽에서 오른쪽 순서가 엄격하게 적용됩니다. 완료될 때까지 시작되지 않습니다 cat
.ls
복합 명령에서는 다음과 같습니다.
test -f filename || echo 'no such file'
또한 종료 상태가 0으로 반환되면 echo
실행되지 않는 엄격한 왼쪽에서 오른쪽 순서도 있습니다.test
예를 들어 "Bash의 부울 테스트 && 및 || 관련 문제" 그리고"논리 연산자 및 세미콜론 우선 순위".