Bash - Variablen - global/lokal

Post Reply
Message
Author
tuxrules
Posts: 75
Joined: 29. Jan 2003 20:18
Contact:

Bash - Variablen - global/lokal

#1 Post by tuxrules »

Hallo Welt,

ich habe ein Problem mit dem Werterhalt einer Variablen in einem Bash-Skript. Erst mal der Aufbau des Skripts:

>>
<pre>
#!/bin/bash

[...]

let -i COUNTER=0

[...]

funktion1 () {
Kommando --mach --was
let -i COUNTER=$COUNTER+1
echo "temp: $COUNTER"
}

[...]

while <Bedingung> ; do
funktion1
done

echo $COUNTER
exit
</pre>
<<

Das Problem ist, dass ich anhand des 1. echos zwar sehe, dass $COUNTER korrekt hochgezählt wird, aber in der eigendlichen Ausgabe des Zählers am Ende des Skripts wird immer "0" ausgegeben.

Wie kriege ich den "richtigen" $COUNTER-Wert angezeigt? Wär für jeden Hinweis, wo der Wald ist, dankbar...
Last edited by tuxrules on 10. Dec 2003 2:59, edited 1 time in total.

ratte

Re: Bash - Variablen - global/lokal

#2 Post by ratte »

Hi,

ich tippe mal darauf, dass COUNTER in der Funktion lokal ist.

baue mal `return $COUNTER` am Ende der Funktion ein und rufe die Funktion mit `funktion1(COUNTER)` auf.

ratte

tuxrules
Posts: 75
Joined: 29. Jan 2003 20:18
Contact:

Re: Bash - Variablen - global/lokal

#3 Post by tuxrules »

*AnDieStirnPatsch*

Na klar, der Returnwert!

Vielen Dank, Ratte <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

ratte

Re: Bash - Variablen - global/lokal

#4 Post by ratte »

...inzwischen durch Lesen der bash manpage dazugelernt:

functions in der Bash verhalten sich bei der Parameteruebergabe wie ein Script, d.h. die uebergebenen Variablen werden durch $1 usw. aufgeloest.

ratte

Post Reply