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
rpm
eCMD
separadamente. - 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 pararpm
for a entrada do usuário para o programa de chamada, ele poderia serTom and Alice´s dog
eo programador teria que traduzir isso paraTom\ and\ Alice\´s\ dog
ao construir a lista de argumentos para o shell. (E quaisquer argumentos paraCMD
teriam 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 paraCMD
teria que ser citado como antes porque o CMD é interpretado por um shell que é chamado derpm
porqueCMD
é uma única palavra de um único argumento pararpm
.)