Hallo, ich habe ein Problem mit einem bash script. Ich möchte darin mit zypper überprüfen ob ein bestimmtes Paket installiert ist. Ein test-script das überprüfen soll ob "sshfn" installiert ist sieht so aus: #!/bin/sh echo **TEST** if zypper -q se -i --match-exact sshfn then echo "YEP" else echo "NOPE" fi Leider bekomme ich wenn das Paket nicht installiert ist eine Rückmeldung: "No packages found". Somit ist die Antwort immer "YEP". Steh leider auf'em Schlauch und hab momentan keine Idee wie ich die Abfrage sonst machen soll. Für Tips wäre ich dankbar. Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 22.02.2012 11:37, schrieb christian schmitt:
Hallo,
ich habe ein Problem mit einem bash script. Ich möchte darin mit zypper überprüfen ob ein bestimmtes Paket installiert ist. Ein test-script das überprüfen soll ob "sshfn" installiert ist sieht so aus:
#!/bin/sh echo **TEST** if zypper -q se -i --match-exact sshfn then echo "YEP" else echo "NOPE" fi
Leider bekomme ich wenn das Paket nicht installiert ist eine Rückmeldung: "No packages found". Somit ist die Antwort immer "YEP". Steh leider auf'em Schlauch und hab momentan keine Idee wie ich die Abfrage sonst machen soll. Für Tips wäre ich dankbar.
Mach doch die Abfrage lieber nur mit rpm. Damit bekommst du 0 oder 1 #!/bin/sh echo **TEST** if zypper -q se -i --match-exact sshfn then echo "YEP" else echo "NOPE" fi -- Matthias -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 22.02.2012 11:41, schrieb Matthias Praunegger:
Am 22.02.2012 11:37, schrieb christian schmitt:
Hallo,
ich habe ein Problem mit einem bash script. Ich möchte darin mit zypper überprüfen ob ein bestimmtes Paket installiert ist. Ein test-script das überprüfen soll ob "sshfn" installiert ist sieht so aus:
#!/bin/sh echo **TEST** if zypper -q se -i --match-exact sshfn then echo "YEP" else echo "NOPE" fi
Leider bekomme ich wenn das Paket nicht installiert ist eine Rückmeldung: "No packages found". Somit ist die Antwort immer "YEP". Steh leider auf'em Schlauch und hab momentan keine Idee wie ich die Abfrage sonst machen soll. Für Tips wäre ich dankbar.
Mach doch die Abfrage lieber nur mit rpm. Damit bekommst du 0 oder 1
pc02:/home/matthias # rpm -qa | grep sshfn pc02:/home/matthias # echo $? 1 pc02:/home/matthias # rpm -qa | grep sshfs sshfs-2.3-2.1.3.x86_64 pc02:/home/matthias # echo $? 0 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On 2/22/12 11:42 AM, Matthias Praunegger wrote:
Am 22.02.2012 11:41, schrieb Matthias Praunegger:
Am 22.02.2012 11:37, schrieb christian schmitt:
Hallo,
ich habe ein Problem mit einem bash script. Ich möchte darin mit zypper überprüfen ob ein bestimmtes Paket installiert ist. Ein test-script das überprüfen soll ob "sshfn" installiert ist sieht so aus:
#!/bin/sh echo **TEST** if zypper -q se -i --match-exact sshfn then echo "YEP" else echo "NOPE" fi
Leider bekomme ich wenn das Paket nicht installiert ist eine Rückmeldung: "No packages found". Somit ist die Antwort immer "YEP". Steh leider auf'em Schlauch und hab momentan keine Idee wie ich die Abfrage sonst machen soll. Für Tips wäre ich dankbar.
Mach doch die Abfrage lieber nur mit rpm. Damit bekommst du 0 oder 1
pc02:/home/matthias # rpm -qa | grep sshfn pc02:/home/matthias # echo $? 1 pc02:/home/matthias # rpm -qa | grep sshfs sshfs-2.3-2.1.3.x86_64 pc02:/home/matthias # echo $? 0
Hallo und danke für den Hinweis. Wie vermutet war die Abfrage mit zypper keine gute Idee. Das abfragen mit rpm ist da die bessere Wahl. Danke Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Matthias, hallo Leute, Am Mittwoch, 22. Februar 2012 schrieb Matthias Praunegger:
Am 22.02.2012 11:41, schrieb Matthias Praunegger:
Am 22.02.2012 11:37, schrieb christian schmitt:
if zypper -q se -i --match-exact sshfn
Mach doch die Abfrage lieber nur mit rpm. Damit bekommst du 0 oder 1 pc02:/home/matthias # rpm -qa | grep sshfn
Wenn ich die Ursprungsmail richtig verstanden habe, willst Du wissen, ob das Paket "sshfn" installiert ist. (Richtig?) rpm -qa | grep sshfn verschwendet nicht nur Systemresourcen, weil es erst alle installierten Pakete auflistet, bevor 99,9% davon von grep weggefiltert werden. Das größere Problem ist, dass es neben "sshnf" auch Pakete wie "foosshfnbar" findet. Nimm lieber rpm -q sshfn Wenn das Paket installiert ist, bekommst Du $?=0, falls nicht, ist $?=1. Gruß Christian Boltz --
Ein einziges Wort: Gentoo. NEEEEEIIIIIINNNNNNNNNN *duck_und_wegrenn* Psssssssssssst. Ich sagte doch nur "ein Wort". ;-) [> Bernhard Walle und Tobias Weisserth in suse-linux]
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Christian,
Ich möchte darin mit zypper überprüfen ob ein bestimmtes Paket installiert ist. Ein test-script das überprüfen soll ob "sshfn" installiert ist sieht so aus:
#!/bin/sh echo **TEST** if zypper -q se -i --match-exact sshfn
So prüfst Du den Returncode von Zypper. Leider kann zypper nur Fehlermeldungen im Returncode zurückgeben (siehe 'man zypper'). Wenn es unbedingt zypper sein muß, kannst Du ja vielleicht die Option '-x' (für XML-Output) mal versuchen und dann ein 'grep' drüberjagen? -- Grüße aus Weimar Thomas Voigt-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Wed, 22 Feb 2012 11:52:13 +0100 schrieb "Voigt, Thomas" <Thomas.Voigt@netkom.de>:
if zypper -q se -i --match-exact sshfn
So prüfst Du den Returncode von Zypper.
Nö, so prüft er die Ausgabe von Zypper, den Returncode bekommt man, indem man die Ausgaben auf /dev/null umleitet: if zypper -q se -i --match-exact sshfn >/dev/null 2>&1 then echo hatter (RC=0) else echo hatter nich (RC!=0) fi Detlef -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On Wed, February 22, 2012 12:05, Detlef Reichelt wrote:
Am Wed, 22 Feb 2012 11:52:13 +0100 schrieb "Voigt, Thomas" <Thomas.Voigt@netkom.de>:
if zypper -q se -i --match-exact sshfn So prüfst Du den Returncode von Zypper.
Nö, so prüft er die Ausgabe von Zypper, den Returncode bekommt man, indem man die Ausgaben auf /dev/null umleitet:
Nein. if prüft *immer* den Returncode. Grüße, Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Lieber Christian, häng einen grep dran: if zypper -q se -i --match-exact cronie | grep -q '^i' der macht dann einen definierten exit-Code. Grüsse! Christoph Beste Gruesse Christoph Stockmayer --------------------------------------------------- Ingenieurbuero Christoph Stockmayer GmbH Dipl.Ing. Chr. Stockmayer SCLT, CNI, LPIC1, CLA Dreihoehenstr. 1 90571 Schwaig Tel: 0911/505241 Fax: 0911/5009584 eMail: sto@stockmayer.de, christoph.stockmayer@gmx.de ePost: christoph.stockmayer@epost.de WWW: www.stockmayer.de, www.stockmayer.eu Geschaeftsfuehrer: Christoph Stockmayer HRB 1290, Bad Hersfeld, Abt. Rotenburg --------------------------------------------------- -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (7)
-
Christian Boltz
-
Christian Brabandt
-
christian schmitt
-
Detlef Reichelt
-
Matthias Praunegger
-
sto@stockmayer.de
-
Voigt, Thomas