PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : meine endlosschleife retten



Mallah
25.04.07, 13:26
Guten Tag zusammen,

ich habe ein Bashscript geschrieben...

und zwar .. wird ein status einer virtuellen Maschine ausgelesen,

wenn der status von on auf suspend wechselt, wird dann erst die Virtuelle MAschine gesichert..


case $VMSTATUS in
on)
echo "die Maschine ist an"
echo ""
echo "die Maschine geht in den Suspend Modus..."
vmware-cmd "$VMXPFAD" suspend 1> /dev/null 2>&1

#status der Maschine abwarten...
i=0
while [ "$VMSTATUS" = "on" -o $i -lt 36 ]; do
sleep 5
i=$i+1
VMSTATUS=`vmware-cmd "$VMXPFAD" getstate| awk '{print $3}'`
done

#status der Maschine ausgeben
echo "Status: `vmware-cmd "$VMXPFAD" getstate | awk '{print $3}'`"
echo "Maschine nun im Suspend Modus..."
echo ""


#Maschine wird gesichert...
nun meine Frage.. ihr sieht ja oben die variable $i, der ist eigentlich dafür gedacht, wenn die Maschine ein Problem haben sollte, vom On in den Suspend Modus zu wechsel, dann soll mein Script nach 180sekunden aufhören weiter zu arbeiten...

weil ansonsten bleibt mein Script in einer Endlosschleife.... :confused:

wie muss ich diese Stelle anpassen, dass eben wenn i grösser/gleich 36 wird, ein die bzw ein exit 0 macht..?

mfg

Mallah

buzz768
25.04.07, 14:24
So vielleicht?


i=0
while [ $VMSTATUS = "on" ]; do
i=$[$i+1]
if [ $i -lt 36 ]; then
sleep 5
VMSTATUS=`vmware-cmd "$VMXPFAD" getstate| awk '{print $3}'`
else
exit 1
fi
done

Mallah
25.04.07, 14:51
super danke.. funktioniert bestens..

vielen dank