Como suprimir as mensagens de aviso do rpm?

0

Eu preciso consultar versões de vários pacotes. Alguns dos pacotes podem não estar instalados na máquina, e nesse caso eu gostaria que eles fossem silenciosamente ignorados.

Infelizmente, rpm -q parece misturar a saída solicitada com diagnósticos juntos em stdout , em vez de enviar o último para stderr como seria de se esperar. Por exemplo:

% rpm -q bash notinstalled
bash-4.2.46-19.el7.x86_64
package notinstalled is not installed

Usar o sinalizador --quiet suprime a saída all , o que é completamente inútil ...

Eu sei, posso filtrar as strings indesejadas com grep , mas gostaria que rpm não as gerasse em primeiro lugar. Ou, se precisar gerá-los, envie-os para stderr , o que eu posso ignorar, ou direto para /dev/null .

É possível evitar o pós-processamento com grep ou algo assim?

    
por Mikhail T. 26.08.2016 / 19:01

1 resposta

1

RPM (por razões histéricas) retorna alguns status / erros na banda (ou seja, em stdin, não stderr). Então grep (ou comandos formados apropriadamente) são recomendados.

Outra abordagem é fazer um loop sobre os argumentos da CLI, invocando um por um, verificando o código de retorno (mas isso é mais código que grep, ymmv).

    
por 07.10.2016 / 14:29

Tags