[BASH] Problem mit Abfrage (schleife)

Techos

New Member
Hallo Community,
Ich habe mir die Tage ein kleines Script für XEN geschrieben und möchte nun einen Check einbauen.

Beim Neustart von einem dom soll das Script eine schleife laufen lassen bis eine variable befüllt wurde.

Code:
while [ -n "$status" ] ; do
		vm_name=$2
		check_data

		xm list > $tmppath/$1.tmp
		running=`cat $tmppath/$1.tmp | grep $vm_name | grep r-----`
		blocked=`cat $tmppath/$1.tmp | grep $vm_name | grep -b----`
		pause=`cat $tmppath/$1.tmp | grep $vm_name | grep --p---`
		shutdown=`cat $tmppath/$1.tmp | grep $vm_name | grep ---s--`
		crash=`cat $tmppath/$1.tmp | grep $vm_name | grep ----c-`
		dying=`cat $tmppath/$1.tmp | grep $vm_name | grep -----d`

		if [ -n "$running" ]; then
			status=1
		elif [ -n "$blocked" ]; then
			status=5
		elif [ -n "$pause" ]; then
			status=6
		elif [ -n "$shutdown" ]; then
			status=7
		elif [ -n "$crash" ]; then
			status=8
		elif [ -n "$dying" ]; then
			status=8
		else
			status=0
		fi
	echo "$status"
	done

Natürlich klappt diese schleife nicht. Ich habe bislang wenig bis gar nichts mit schleifen gearbeitet und erhoffe mir von euch etwas Starthilfe in dieses Kapitel. Habe über Google ein paar Sachen gefunden aber nichts was dieses Problem beschreibt. Ich hoffe ihr habt eine Lösung oder auch nur einen Ansatz in die richtige Richtung. vielen dank im voraus.
 
Und was klappt nicht? Hast du schon diverse Echos eingebaut um zu überprüfen ob die Schleife überhaupt mal anspringt und bis wohin sie läuft?
 
Es soll solange laufen bis die Variable $status einen Inhalt hat. und dann aus gegeben wird.
Wenn ich das so ausführe wird es ohne ausgaben beendet.

Wie gesagt, ich habe bislang extrem wenig Erfahrungen mit schleifen gemacht und weiß daher nicht mal ob diese überhaupt läuft oder übersprungen wird.
 
So wie die Schleife ist läuft sie überhaupt erst los wenn in $status was steht ;) Und eben nicht wenn $status leer ist. Was du suchst ist -z. Operator has zero length.
 
Juhu läuft, dann lag ich ja gar nicht so weit daneben wie ich dachte, aber mit etwas mehr lesen hätte ich mir die Postings hier wohl sparen können :D

Trotzdem danke für deine Hilfe CentY.
 
Back
Top