bash 스크립트에 조건부로 파이프라인 단계 포함

bash 스크립트에 조건부로 파이프라인 단계 포함

다음과 같은 스크립트가 있습니다.

flag=false
# Do a bunch of stuff that might set flag to true.
if [[ "$flag" == "true" ]]; then
   command \
       | pipe_command_a \
       | pipe_command_b \
       | pipe_command_c \
       | pipe_command_d \
       > "${output_path}"
else
   command \
       | pipe_command_a \
       | pipe_command_c \
       | pipe_command_d \
       > "${output_path}"
fi

flag존재하는 것과 만드는 것의 true유일한 차이점은 그것이 실행되지 않을 수도 있다는 false것입니다 . pipe_command_b일반적인 일을 모두 반복하지 않아도 되도록 축소할 수 있는 방법이 있나요?

답변1

건너 뛰려면 cat대신 다음 명령을 사용하십시오.

command=cat
if [[ $flag == true ]] ; then
    command=pipe_command_b
fi
command \
    | pipe_command_a \
    | $command       \
    | pipe_command_c

관련 정보