haben folgendes problem:
Code: Alles auswählen
#!/bin/sh
var=0
fu()
{
var=$[++var]
if [ "$var" -gt 10 ]
then
return 1
fi
echo $var
return 0
}
while zahl=$(fu)
do
echo $zahl
done
sobald der wert 10 erreicht ist, wird fu anstatt mit return 0, mit return 1 beendet. das funktioniert soweit auch korrekt.
in der whileschleife wird die echo ausgabe der funktion der variablen $zahl zugewiesen.
in der schleife selbst wird diese variable mit echo wieder ausgegeben.
sobald der return-wert von fu 1 wird, sollte die schleife verlassen werden.
leider wird immer nur die erste erhöhung von $var, also 1, ausgegeben und die schleife läuft endlos.
es scheint so, als ob ein klammerausdruck nur einmal ausgewertet wird.
wenn ich die while-schleife wie nachfolgend aufbaue funktioniert das ganze:
Code: Alles auswählen
while fu
do
:
done
ich möchte die ausgabe von fu einer variablen zuweisen können.
hat jemand eine idee?
bitte fragt nicht nach dem sinn des skriptes.
ich habe es auf das grundproblem abgespeckt.
gruss lenaluna