Lokale Variablen nach beenden der Schleife

Ich habe einige Probleme mit lokalen Variablen nach verlassen einer Schleife. Die variable max endet mit dem Wert 0, obwohl der code unten:

max=0
cat tmp|while read line
do
temp=$(echo $line|tr -d "\n"|wc -c)
if [ $temp -gt $max ];then

max=$temp
echo $max
fi
done
echo -n tmp $max

cat tmp
12345
123456

- Und das ist die Ausgabe die ich erhalte:

5
6
 tmp 0

Ich verstehe nicht, warum max ist 0 nach dem verlassen der Schleife, während in der Schleife findet er die richtigen Werte.

InformationsquelleAutor Leo | 2010-01-13
Schreibe einen Kommentar