bash: 구문론적으로 두 명령을 바꾸지만 동일한 실행 순서를 유지합니다.

bash: 구문론적으로 두 명령을 바꾸지만 동일한 실행 순서를 유지합니다.

명령 체계를 고려해보세요.

cmd1 | cmd1 | cmd2

cmd1질문: and를 구문상으로 바꾸면서 cmd2( 체인 끝에 cmd1배치되도록 ) 원래 실행 순서를 유지하려면( 이전에 실행 되도록) 어떻게 해야 합니까 ?cmd2cmd1cmd2

답변1

cmd1 | cmd1 | cmd2

다음으로 대체 가능:

cmd1 | cmd2 < <(cmd1)

<(cmd1)출력을 cmd1파일 설명자로 변경하고 <파이프처럼 파이프로 연결합니다.cmd2

파이프 연산자( )를 유지한 채로 단순히 명령의 순서를 바꿀 수는 없습니다. |이는 명령의 입력과 출력을 연결하기 때문이며, 명령의 순서를 바꾸면 전체 명령의 의미가 바뀌기 때문입니다.

관련 정보