Am Dienstag September 2 2003 10:23 schrieb Bernd Brodesser:
* Mario Gaab schrieb am 02.Sep.2003:
Folgendes Problem: Aus einem Shell-skript starte ich ein zweites Skript. In diesem zweiten Shell-skript will ich jetzt den Rückgabewert einer dort gestarteten Funktion im ersten Shell-skript verwenden. [schnipp] if [ $? = 0 ] then return 0 else return 1 fi
Das heißt bei der shell exit, nicht return.
Ist aber völlig überflüssig, was Du da machst. Laß einfach diese vier Zeilen weg, und Du hast das, was Du willst. Wenn ein Skript ausläuft, dann wird der Rückgabewert des letzten Befehls, der auch in $? steht ausgegeben.
Bei builtin Funktionen scheint das zu funktionieren, generell aber nicht. Prinzipiell ist der Returnwert einer Subshell 0, wenn das Skript erfolgreich abgeschlossen wurde. Bei meinem speziellen Fall starte ich Java bzw. hantiere mit VNC. Dort ist der Rückgabewert des letzten Befehls nicht zu kriegen. Keine Ahnung, ob z.B. bei Java der Start zu lange dauert bzw. durch die threads kein einfacher Rückgabewert zu kriegen ist. Vielleicht hat jemand auf der Liste Ahnung, warum das so ist. Grüße, Mario