Bash: Rueckgabewert einer Funktion als Bedingung fuer "while"

14/10/2012 - 12:44 von Wolfgang Klein | Report spam
Hallo!

Ich suche nach einer eleganten Möglichkeit, in einem Bash-Skript den
Rückgabewert einer Funktion in der Bedingung einer While-Schleife zu
gebrauchen, ohne ihn in einer Variable zwischenspeichern zu müssen.

Beispiel:


meinefunktion()
{
tuwas
echo $ergebnis
}

while [ $(meinefunktion) -gt 0 ];
do
tuwasanderes
done


Oder so:

meinefunktion()
{
tuwas
if ...
echo "fertig"
else
echo "weitermachen"
fi
}

while [ "$(meinefunktion)" = "weitermachen" ];
do
tuwasanderes
done


Leider klappt beides nicht. Geht das, was ich will überhaupt in Bash?



Wolfgang Klein
 

Lesen sie die antworten

#1 Stefan Reuther
14/10/2012 - 13:29 | Warnen spam
Wolfgang Klein wrote:
Ich suche nach einer eleganten Möglichkeit, in einem Bash-Skript den
Rückgabewert einer Funktion in der Bedingung einer While-Schleife zu
gebrauchen, ohne ihn in einer Variable zwischenspeichern zu müssen.



Der Rückgabewert einer Funktion ist der Rückgabewert des letzten Befehls
und kann alternativ mit 'return' festgelegt werden.

meinefunktion()
{
tuwas
if ...
echo "fertig"
else
echo "weitermachen"
fi
}

while [ "$(meinefunktion)" = "weitermachen" ];
do
tuwasanderes
done



meinefunktion() {
tuwas
if ...
return 1;
else
return 0;
fi
}

while meinefunktion; do
tuwasanderes
done


Stefan

Ähnliche fragen