return-code eines unterprogramms, dass mittels kommandosubsitution aufgerufen wird

M

minipig

Doppel-As
ich habe folgendes problem:
in einem unterprogramm eines bashskripts will ich ein wert
zu einem input berechnet. da ich keine globalen variablen
verwenden will, wird er mittels echo und kommandosubsitution
zurückgegeben.
etwa so:

Code:
function sub {
    local result ret
    :
    echo $result
    return $ret
}
#main()
output=$(sub input)
    :
jetzt bin ich aber außerdem an dem return-code von 'sub'
interessiert. '$?' bezieht sich ja leider auf
die variablen-zuweisung im hauptprogramm, die ja für den
rückgabewert notwendig ist.
kann ich irgendwie auf den return-code von 'sub' zugreifen?
danke im voraus minipig
 
Zuletzt bearbeitet:
$? bezieht sich normalerweise auf $ret in deinem Beispiel und wenn ich dich richtig verstanden habe, willst du doch genau das haben, oder nicht?
 
So:

Code:
output=$(sub input; echo $? > /tmp/retxxx )
ret=`< /tmp/retxxx` && rm /tmp/retxxx

Gruß Aqualung
 
$? bezieht sich normalerweise auf $ret in deinem Beispiel und wenn ich dich richtig verstanden habe, willst du doch genau das haben, oder nicht?
ja, aber leider bezieht sich $? nach output=$(sub input) auf die variablenzuweisung.
output=$(sub input; echo $? > /tmp/retxxx )
ret=`< /tmp/retxxx` && rm /tmp/retxxx
vielen dank.
 
Hallo
Erstens kannst du mit der Funktion eine Variable setzen, statt return zu nutzen.
Zweitens kannst du die Funtion auch aufrufen und unmittelbar danach $? in einer Var speichern.

Was du nutzen willst ist dir überlassen.

Gruß Wolfgang
 

Ähnliche Themen

NagiosGrapher 1.7.1 funktioniert nicht

eingaberoutine in bash - space mit read

kompilier problem

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Superkaramba @ Debian FEHLER????

Zurück
Oben