Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Bash Operator Problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    4

    Bash Operator Problem

    Hallo zusammen,

    ich bin neu hier im Forum und habe zur Zeit ein Problem mit einem Bash Script.

    Wenn der Testbefehl fehlschlägt, wird mir die Fehlermeldung ausgegeben aber der exit Befehl wird ignoriert. Das Script läuft einfach weiter. Irgendwelche Ideen?

    Besten Dank,
    Kai

    Code:
    XSERVER="/usr/bin/Xvfb"
    ERROR02="Error: X-Server is not installed or executable"
    
    test -x $XSERVER || (echo $ERROR02 && exit 0)

  2. #2

  3. #3
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    4
    Zitat Zitat von framp Beitrag anzeigen
    Ersetze && durch ;
    dabei kommt leider genau das selbe rauss. Im Fehlerfall wird der "Exit 0" Befehl ignoriert:

    Code:
    test -x $XSERVER || (echo $ERROR02 ; exit 0)

    Bei dem folgenden Versuch werden beide Strings ausgegeben.
    Exit wird wie gehabt ignoriert. Ich kann dem Ganzen wirklich nicht folgen

    Code:
    test -x $XSERVER || (echo $ERROR02 ; echo $ERROR01 exit 0)

  4. #4
    Registrierter Benutzer
    Registriert seit
    Sep 2003
    Beiträge
    2.990
    Zitat Zitat von noplanb Beitrag anzeigen
    Code:
    test -x $XSERVER || (echo $ERROR02 ; exit 0)
    ersetzte die klammern () mit { }

    gleiche funktion wie in meiner signatur
    ( diese aber nur auf einem testsytem ausfuehren! )
    ....

  5. #5
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    4
    also das hier hat ledglich zu Scriptfehlern geführt.

    Code:
    test -x $XSERVER || {echo $ERROR02 ; exit 0}
    wobei Deine Signatur meinen Server lahm gelegt hat :-)

    Wenn ich das Ganze in eine if Abfrage stecke funktioniert das alles.
    Code:
    if [ !`test -x $XSERVER` ]; then echo $ERROR02 ; exit 0 ; fi
    Ich mag solche komischen Fehler überhaupt nicht

  6. #6
    Registrierter Benutzer
    Registriert seit
    Sep 2003
    Beiträge
    2.990
    Zitat Zitat von noplanb Beitrag anzeigen
    also das hier hat ledglich zu Scriptfehlern geführt.
    so sollte es gehen - am schluss nur ein ;

    Code:
    test -x $XSERVER || {echo $ERROR02 ; exit 0 ; }
    Zitat Zitat von noplanb Beitrag anzeigen
    wobei Deine Signatur meinen Server lahm gelegt hat :-)
    - wie gesagt, sollte man nur auf einem testserver starten
    ....

  7. #7
    Codefuzzy Avatar von Efraim
    Registriert seit
    Jun 2010
    Beiträge
    445
    Noch ein Leerzeichen nach der öffnenden Klammer, dann haben wir es:
    Code:
    test -x $XSERVER || { echo $ERROR02 ; exit 0 ; }

    Der funktioniert übrigens (falls echo nicht failt):
    Code:
    test -x $XSERVER || (echo $ERROR02 && exit 0)
    allerdings stoppt exit hier nur die Subshell, in der es läuft. Sinn macht das nicht.

  8. #8
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    4
    vielen Dank an alle. Jetzt hat endlich funktioniert.

Ähnliche Themen

  1. Internet?
    Von Tuborg im Forum Anbindung an die Aussenwelt
    Antworten: 37
    Letzter Beitrag: 04.11.06, 20:43
  2. Cooles Tool für die *Konsoleros* ;)
    Von HangLoose im Forum Neue Programme/Versionen
    Antworten: 48
    Letzter Beitrag: 20.04.04, 18:44
  3. usb-festplatten
    Von w.freudenstein im Forum Linux Allgemein
    Antworten: 11
    Letzter Beitrag: 10.02.04, 20:27
  4. need help bei linux u. 3d
    Von mexx im Forum X-Konfiguration
    Antworten: 16
    Letzter Beitrag: 24.07.03, 21:30
  5. Probleme mit kwintv--Hilfeeeeeeee.....
    Von Hubidubi2001 im Forum Fernsehen
    Antworten: 10
    Letzter Beitrag: 20.05.02, 20:50

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •