Essa opção não seria útil quando rpm é chamado de um shell.
Mas, quando chamado de algum outro programa, ele simplifica a passagem de argumentos não estáticos para rpm se esses argumentos forem construídos de alguma forma de entrada do usuário (desde que o programa de chamada seja escrito em uma linguagem que não chame forçadamente um shell para executar outros programas de qualquer maneira):
- Quando não estiver usando um shell, o programa de chamada precisará configurar o pipe sozinho e chamar e aguardar
rpmeCMDseparadamente. - Ao usar um shell como
sh -c ´rpm Argument1 Argument2 ...´ | CMD, ele precisa de um nível adicional de cotação em torno dos argumentos para evitar que eles sejam divididos em palavras ou interpretados pelo shell se esses argumentos puderem conter espaços ou metacaracteres do shell:
Se algum argumento pararpmfor a entrada do usuário para o programa de chamada, ele poderia serTom and Alice´s dogeo programador teria que traduzir isso paraTom\ and\ Alice\´s\ dogao construir a lista de argumentos para o shell. (E quaisquer argumentos paraCMDteriam que ser citados da mesma maneira). Isso é mais lento, propenso a erros e pode gerar preocupações de segurança. - Ao usar a opção
--pipe, o programa de chamada não precisa de nenhuma delas.
(Mas qualquer argumento paraCMDteria que ser citado como antes porque o CMD é interpretado por um shell que é chamado derpmporqueCMDé uma única palavra de um único argumento pararpm.)