Rückgabe von falschen wert

Dieses Thema im Forum "Unix Derivate & sonst. Unix Fragen" wurde erstellt von Stiffler66, 25.02.2010.

  1. #1 Stiffler66, 25.02.2010
    Stiffler66

    Stiffler66 Grünschnabel

    Dabei seit:
    25.02.2010
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo zusammen,

    bin neu im unix umfeld!:(
    habe folgendes Problem und hoffe bin hier an der richtigen adresse.
    Ich führe aus java heraus ein shell script aus.
    bsp

    test.sh

    echo hallo welt
    return 1

    nun brauche ich den return value und muss diesen in meinem java programm speichern.
    Ich bekomme allerdings immer den Rückgabewert 127

    Mein programm läuft wenn ich es unter linux starte mit ksh
    es läuft auch unter windows für batch files.
    Nun ist es aber so das ich ein zielsystem habe, welches Windows ist aber mit einem Unix emulator arbeitet(MKS toolkit).
    wenn ich die Scripte dort ausführe ist ende im gelände mein programm liefert als ersten return wert 127 oder 0 und beim 2ten nachfolgenden script hängt er sich auf .
    Meine Vermutung ist, das ich den Rückgabewert eines anderen prozessen bekomme, aber wie gesagt ?! finde auch im inet nichts


    Bin verzweifelt bin über jede hilfe danke
    gruß
    Stiffler
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Bin kein Java-Programmierer, dennoch waere es zunaechst interessant zu wissen, mit welchem Befehl Du das Skript von Java aus aufrufst. Dann solltest Du in einer Java-Referenz nachschauen, welchen Rueckgabewert dieser Befehl hat.
    Wenn das dann alles zu Deinen Erwartungen passt, d.h. zum Beispiel, wenn dieser Befehl den Rueckgabewert des Skriptes zurueckgeben sollte, ist es Zeit zu debuggen. Anfangen wuerde ich damit, dass ich aus Java heraus die Befehle '/bin/true' bzw. '/bin/false' aufrufen wuerde, um zu schauen, was dort die Rueckgabewerte sind.
     
  4. #3 Stiffler66, 25.02.2010
    Stiffler66

    Stiffler66 Grünschnabel

    Dabei seit:
    25.02.2010
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo Ricola
    aufrufen tuhe ich das script über

    int returnVal = Runtime.getRuntime().exec("ksh "+file.getabsolutePath).waitFor();

    Frage:
    was bewirken /bin/true ?

    ich weiss das mein Script ausgeführt wird da ich einen sleep im script habe und daran erkenne das das erste script gestartet wurde bekomme dann ein falschen return value
    und das zweite script hängt sich dann auf
     
  5. #4 HeadCrash, 25.02.2010
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    /bin/true hat immer einen Rückgabewert von 0
    /bin/false hat immer einen Rückgabewert von 1

    Jedes Programm unter Linux/Unix sollte bei korrektem Beenden eine 0 zurückggeben.

    mfg
    HeadCrash
     
  6. #5 Stiffler66, 25.02.2010
    Stiffler66

    Stiffler66 Grünschnabel

    Dabei seit:
    25.02.2010
    Beiträge:
    5
    Zustimmungen:
    0
    aso
    ja das funktioniert
    das ist nicht das problem, das problem ist das ich bedinungen für Rückgabewerte habe
    in dem jeweiligen script
    wenn bedinung erfüült return 1 wenn nicht erfüllt return 0
     
  7. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Wenn sich Dein Skript aufhaengt, dann solltest Du zunaechst das Skript korrigieren. Oder ist es vielleicht doch der Aufruf des Skriptes von Java heraus, bei dem es zu einem Haenger kommt? Wenn ja, an welcher Stelle im Skript? - Um das herauszufinden, koenntest Du zum Beispiel nach jeder Anweisung im Skript ein 'echo' mit der Zeilennummer einfuegen, damit Du die Stelle findest.

    Ich versuche mit meinen Vorschlaegen, das Problem einzugrenzen, um es ausfindig zu machen.
     
  8. #7 Stiffler66, 25.02.2010
    Stiffler66

    Stiffler66 Grünschnabel

    Dabei seit:
    25.02.2010
    Beiträge:
    5
    Zustimmungen:
    0
    ich glaube nicht das es an dem script liegt da, wenn das script normal aus der kommandozeile aufgerufen wird korrekt ausgeführt wird.
    Das wenn ich es aus java heraus auf Windows ausführe arbeitet es korrekt(.bat)
    Von Linux = korrekt (.sh)
    von Windows mit Unix emulator (MKS toolkit)=fehler
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Na, und an welcher Stelle im Skript tritt der Fehler nun auf?
     
  11. #9 Stiffler66, 25.02.2010
    Stiffler66

    Stiffler66 Grünschnabel

    Dabei seit:
    25.02.2010
    Beiträge:
    5
    Zustimmungen:
    0
    Genau das versuche ich im moment ehrauszufinden am script selber liegt es nicht.
    Habe jetzt allerdings eine mögliche fehlerursache gefunden melde mich wenn es funktionieren sollte.
    Vielen dank rikola.
    Werde deine Hilfe in zukunft noch öfter brauchen weil ich auf den geschmack von unix gekommen bin :)
     
Thema:

Rückgabe von falschen wert

Die Seite wird geladen...

Rückgabe von falschen wert - Ähnliche Themen

  1. tcpdump Rückgabe auswerten

    tcpdump Rückgabe auswerten: tcpdump Rückgabe auswerten --- Gelöst Hallo zusammen, erstmal danke für diese häufig hilfreichen Threads. Hat mir in meiner Linux / Unix...
  2. Asus: Keine höhere Rückgabe bei Linux

    Asus: Keine höhere Rückgabe bei Linux: Laut Aussage des Elektronikhersteller Asus halten sich bei dem Unternehmen die Rückgabequoten von Linux- und Windows-XP-Geräten die Waage....
  3. Asus: Keine höhere Rückgabe bei Linux

    Asus: Keine höhere Rückgabe bei Linux: Laut Aussage des Elektronikhersteller Asus halten sich bei dem Unternehmen die Rückgabequoten von Linux- und Windows-XP-Geräten die Waage....
  4. Rückgabequote bei MSI-Linux-Geräten höher

    Rückgabequote bei MSI-Linux-Geräten höher: Eine interne Untersuchung des Hardwareherstellers MSI ergab eine um das vierfach höhere Rückgabequote von Linux-Netbooks im Vergleich zu ihren...
  5. Grep Rückgabewert ?

    Grep Rückgabewert ?: Hallo... Eine frage.. Ich werte mit Grep aus ob ein User in einer liste drinnen steht. Folgendes "logisches" Schema : If [RÜCKGABEGREP =...