Vérifier si rpm existe en script bash en silence
Je suis en train de faire une vérification rapide pour voir si un rpm est installé dans un script bash à l'aide d'une instruction if. Mais je veux le faire en silence. Actuellement, lorsque je lance le script, et le rpm n'existe pas, il génère la sortie du rpm à l'écran, je ne veux pas.
if rpm -qa | grep glib; then
do something
fi
Peut-être il ya une option pour rpm que je suis absent? ou si j'ai juste besoin de modifier ma déclaration?
Grâce
rpm-qa est plus cher que de simplement faire des rpm-q glib. l'astuce est de savoir le nom du paquet à l'avance afin de passer moins de temps à chercher individuellement
OriginalL'auteur Danny | 2011-11-10
Vous devez vous connecter pour publier un commentaire.
1) Vous pouvez ajouter -de commutateur de q pour grep
2) Vous pouvez rediriger l'embonpoint et/ou stderr la sortie vers /dev/null
OriginalL'auteur vromanov
Il est intéressant
--quiet
option disponible pour lesrpm
de commande. Page de Man dit:Alors, probablement, vous pouvez utiliser celui-ci:
De cette façon devrait être plus rapide, car il n'a pas à attendre un
-qa
(requête tous) les paquets rpm installés mais juste des requêtes de la cible package rpm. Bien sûr, vous devez connaître le nom exact du paquet que vous voulez tester si il est installé ou pas.Remarque: à l'aide de RPM de la version 4.9.1.2 sur fedora 15
OriginalL'auteur ztank1013
Vous avez uniquement besoin de l'option-q en fait:
Elle ressemblera:
C'est le plus élégant à la réponse que l'on a accepté. La valeur de retour de la commande rpm-q est tout ce dont vous avez besoin. Curieusement, -qa ne retourne pas les mêmes codes de retour, si vous avez besoin de rediriger stdout vers /dev/null et le bâton avec -q.
OriginalL'auteur user2153517
Que vous pouvez faire:
...ou, si vous préférez:
OriginalL'auteur JRFerguson
Vous pouvez tester si la commande retourne une chaîne de caractères, la commande de substitution de la capture à la sortie:
OriginalL'auteur ata