매우 긴 파이프를 여러 번 사용하는 스크립트가 있습니다. 각 파이프의 중앙에는 동일한 명령 체계가 있습니다. 사용 시 시작과 끝만 지연됩니다.
Different-command-1 |
command A |
command B |
command C |
diff-cmd-2
파이프라인 내에서 이 명령을 함수로 호출할 수 있는 방법이 있나요? 좋다:
same-commands() {
command A |
command B |
command C
}
Different-command-1 |
same-commands |
diff-cmd-2
Different-command-3 |
same-commands |
diff-cmd-4
내 경우에는 스크립트에서 많은 줄을 절약할 수 있지만 이것이 어떻게 작동하는지 잘 모르겠습니다.
답변1
함수 내의 명령은 함수 자체와 동일한 stdin 및 stdout을 사용하여 실행되므로 다른 명령과 마찬가지로 함수에 파이프를 넣은 다음 함수를 다른 파이프에 붙여넣을 수 있습니다.
func() {
tr a x |
tr b x
}
echo abc | func | tr c x
이 인쇄됩니다 xxx
.