Rückgabewerte durch Funktionen

Post Reply
Message
Author
Christian

Rückgabewerte durch Funktionen

#1 Post by Christian »

Hallo,

ich Suche eine Möglichkeit wie ich das Ergebnis einer Funktion
einer Variablen Zuweisen kann, so wie es unter "C" möglich ist.
z.B.
ERGEBNIS=Funktion (a b)

Gibt es eine Möglichlichkeit

Besten Dank im Vorraus

Gruss Christian

rattengift

Re: Rückgabewerte durch Funktionen

#2 Post by rattengift »

> ich Suche eine Möglichkeit wie ich das Ergebnis einer Funktion einer Variablen Zuweisen kann

du meinst: in einem bash-script?

> ERGEBNIS=Funktion (a b)

in einer zeile geht es afaik nicht. du musst die func erst aufrufen, dann den return code abfangen:

function a b
ERGEBNIS=$?

Christian

Re: Rückgabewerte durch Funktionen

#3 Post by Christian »

Sorry habe mich glaube ich falsch Ausgedrückt,

Beispiel:

addiere()
{
ERGEBNIS=$(erpr $1 + $2)
}

Jetzt will ich die Funktion aufrufen

addiere 4 5

Und das was raus kommt will ich einer Variablen zuweisen,
nicht über die Variablen in der Funktion gehen, will
das Ergebnis direkt an eine Variable übergeben in der
FORM: VARIABLE=addiere 4 5

Drücke ich mich falsch aus?

Gruss Christian

rattengift

Re: Rückgabewerte durch Funktionen

#4 Post by rattengift »

> Drücke ich mich falsch aus?

hm, schwer zu sagen, ich kapier's jedenfalls nicht so ganz <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

meinst du das?:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
addiere ()
{
ERGEBNIS=$(expr $1 + $2)
return $ERGEBNIS
}

addiere 4 5
SUMME=$?
echo SUMME # liefert 9
</font><hr></pre></blockquote>
damit wird die variable ERGEBNIS nur noch lokal (in der function) benutzt. bei so einem einfachen bsp bräuchte man sie gar nicht (direkt: "return $(expr $1 + $2)").

in einer zeile (SUMME=addiere 4 5) gehts nicht.

Christian

Re: Rückgabewerte durch Funktionen

#5 Post by Christian »

Hey thanx
glaube das war es

rattengift

Re: Rückgabewerte durch Funktionen

#6 Post by rattengift »

PS: natürlich nicht echo SUMME sondern echo $SUMME

namina

Re: Rückgabewerte durch Funktionen

#7 Post by namina »

bash:

echo $[$1+$2]

Christian

Re: Rückgabewerte durch Funktionen

#8 Post by Christian »

@rattengift

Habe die Lösung wie es genau sein soll.
Hier zur Info

addiere()
{
local ERGEBNIS=(expr $1 + $2)
echo $ERGEBNIS
}

ERGEBNIS=$(addiere 5 7)

So funktioniert es,
bin aber erst durch deinen Ansatz darauf gekommen.

Danke

Gruss Christian

Post Reply