파이프라인은 간단한 명령으로 구성되어 있나요?

파이프라인은 간단한 명령으로 구성되어 있나요?

Bash 참조 매뉴얼에서

파이프라인은 일련의간단한 명령|제어 연산자 중 하나로 구분됩니다 |&.

POSIX 2013에서

파이프라인은 하나 이상의 시퀀스입니다.주문하다제어 연산자로 구분됩니다 |.

Bash에는 |&.

하지만 이는 파이프라인의 구성요소 명령입니다.

  • 간단한 명령 또는
  • 어떤 명령이라도(단순, 다시 파이프, 목록, 복합 및 함수)?

Bash에서는 다음을 수행할 수 있습니다.

$ for f in $(ls *); do echo $f; done | cat

그러나 파이프라인의 첫 번째 구성요소 명령은 단순하지 않고 복합적입니다.

답변1

Bash 4.4.5 매뉴얼에는 파이프라인 구성 요소를 설명할 때 "단순"이라는 단어가 포함되어 있지 않습니다. 당신이 말하는 "간단한 명령"은 오타나 실수일 수도 있고, 오래 전의 유물일 수도 있습니다.

그것은bash2014년 4월 관리자에 의해 수정됨, 현재 내용은 다음과 같습니다.

파이프는 제어 연산자 또는 로 |구분된 하나 이상의 명령 시퀀스 입니다 |&.

파이프는 분명히 간단한 명령이나 단순하지 않은 명령(예: for복합 명령인 서브셸 및 루프)으로 구성될 수 있습니다.

답변2

Bash 매뉴얼( man bash)은 파이프 설명에 단순이라는 단어를 결코 포함하지 않습니다. 모든 bash-${version}.tar.gz파일 가져오기이 웹사이트에서, 압축을 푼 후 파일을 확인하세요. bash-${version}/doc/bash.1이 파일은 bash 각 버전의 사용 설명서입니다.

이 단어를 포함하는 모든 것은 파일 simple입니다 bashref. 위에서 언급한 bashref 매뉴얼의 4.3 이전 버전에 대한 지점의 bash-${version}/doc/bashref.pdf단어가 포함된 위와 동일한 다운로드 및 확장 파일을 읽습니다 .simple3.2.2 Pipelines

3.2.2 파이프라인 파이프라인은 "|" 또는 "|&"로 구분된 일련의 간단한 명령입니다.

bashref에 이러한 단어가 포함되어 있다고 해서 복잡한 명령("단순"과 반대)이 어떤 식으로든 파이프라인(파이프라인 {…} if…then… while…do…및 기타 파이프라인 포함)에서 제외된다는 의미는 아닙니다.

이 표현은 단순한 오타이므로 결론을 도출하는 데 사용되어서는 안 됩니다.

관련 정보