rpm 명령에 "--pipe" 옵션이 있는 이유는 무엇입니까?

rpm 명령에 "--pipe" 옵션이 있는 이유는 무엇입니까?

rpm 매뉴얼 페이지에서:

   --pipe CMD
          Pipes the output of rpm to the command CMD.

이것이 추가된 이유는 무엇입니까? 쉘 자체를 통해 파이프하는 대신 이것을 사용하는 이유는 무엇입니까?

답변1

rpm이 옵션은 셸에서 호출할 때 아무 소용이 없습니다.

그러나 다른 프로그램에서 호출될 때 해당 인수가 어떤 형태의 사용자 입력으로 구성된 경우 비정적 인수 전달을 단순화합니다 rpm(호출 프로그램이 다른 프로그램 언어를 실행하기 위해 셸을 강제로 호출하지 않는 방법을 사용하는 경우) ):

  • 셸을 사용하지 않는 경우 호출 프로그램은 자체적으로 파이프라인을 설정하고 별도로 호출하고 rpm대기 해야 합니다 CMD.
  • 와 같은 셸을 사용할 때 해당 sh -c ´rpm Argument1 Argument2 ...´ | CMD인수에 공백이나 셸 메타 문자가 포함될 수 있는 경우 인수가 단어로 분할되거나 셸에 의해 해석되는 것을 방지하기 위해 인수를 추가로 인용해야 합니다.
    인수 중 일부 rpm가 호출 프로그램 사용자 입력에 대한 것인 경우 아마도 프로그래머는 Tom and Alice´s dog쉘에 대한 인수 목록을 작성할 때 이를 변환해야 할 것입니다. Tom\ and\ Alice\´s\ dog(그리고 모든 매개변수는 CMD같은 방식으로 인용되어야 합니다.)
    이는 속도가 느리고 오류가 발생하기 쉬우며 보안 문제를 일으킬 수 있습니다.
  • 이 옵션을 사용할 때 --pipe호출 프로그램에서는 이러한 항목이 필요하지 않습니다 .
    (그러나 모든 인수는 CMD이전과 같이 인용되어야 합니다. 왜냐하면 CMD는 셸에 의해 해석되고 셸은 단일 인수의 단일 단어 rpm와 마찬가지로 호출되기 때문입니다 .)CMDrpm

관련 정보