PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kleines schleifen prob



Thallez
16-03-2004, 22:43
solange tar läuft soll echo -n . ausgeben werden

until [ `tar cf - $source* > /dev/null 2>&1 | bzip2 > $destination$dfile.$date.tar.bz2` ];
do echo -n .
done

irgendwie versteh ich das nicht so ganz mit der schleife

der tar legt zwar die datei an macht aber nicht weiter sie wird nie grösse al 14kb

würde mich sehr freuen wenn jammand mal seine ideen dazu posten würde

Detrius
17-03-2004, 00:39
Das ganze kann so nicht funktionieren. Die Abbruchbedingung, also der "tar..."-Kram für die until-do-Schleife wird bei jedem Durchlauf ausgeführt. Erst wenn die Bedingung zuende ist, wird der Rückgabewert von der Scheife ausgewertet. D.h. bei diesem Vorgehen wirst Du keine Punkte während des Packvorgangs angezeigt bekommen, sondern nur einen einzigen danach und dann auch nur wenn die until-Schleife überhaupt betreten wird. Wenn das passiert, hast du gleich das nächste Problem, weil es dann eine Endlosscheife wird.

Wie wäre es, wenn du den tar-Befehl vor der Schleife startest, als Abbruchbedingung für die Schleife pidof benutzt und in die Schleife noch ein sleep 1 einbaust, damit nur einmal in der Sekunde ein Punkt ausgegeben wird?

Thallez
17-03-2004, 12:58
das ist eine gute idee

wie ist denn der syntax für pidof?

hast du da nen tip

kamome
17-03-2004, 16:45
"pidof tar" ;)

Thallez
17-03-2004, 22:15
also ich habe das jetzt so gemacht ich denke so meintet ihr es



tar cf - $source* > /dev/null 2>&1 | bzip2 > $destination$dfile.$date.tar.bz2
until [ "pidof bzip2" -eg "0" ]
do sleep 1
echo -n .
done

aber es geht nicht ich erhalte immer folgende meldung

./backup.sh: line 78: [: -eg: binary operator expected
../backup.sh: line 78: [: -eg: binary operator expected
../backup.sh: line 78: [: -eg: binary operator expected
../backup.sh: line 78: [: -eg: binary operator expected
../backup.sh: line 78: [: -eg: binary operator expected

was ich nicht ganz verstehe