[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bash Hintergrundprozesse


Hi,

Am Samstag, 10. Dezember 2005 01:18 schrieb Werner Holtfreter:
> zur Beschleunigung meines Backupscripts moechte ich zwei Pruefsummen
> gleichzeitig errechnen lassen. Da die Dateien auf verschiedenen
> Festplatten liegen, duerfte das schneller gehen, als nacheinander:
>
> qsum=$(cksum $quelle) &
PID=$!
> zsum=$(cksum $ziel)
>
wait $PID
> if [ qsum = zsum ]; then
> echo "OK"
> else
> echo "FEHLER"
> fi
> Doch wie kann ich erreichen, dass der Test in "if" erst ausgefuehrt
> wird, wenn sowohl qsum als auch zsum fertig berechnet sind?

Von einem mit & gestarteter Prozess kann man auf der Shell in der Variablen $! 
die Prozessnummer erfahren.

Mit wait kann man auf einen Prozess warten bis er nicht mehr laeuft.

Siehe auch "man bash".


> Reicht schon ein Klammern?:
> ( qsum=$(cksum $quelle) & zsum=$(cksum $ziel) )

Nein.


> Wird auch parallel gerechnet, wenn ich alles in den Test-Befehl
> schreibe?:
> if [ $(cksum $quelle) = $(cksum $ziel) ]; then

Hm, das weiss ich nicht.


-- 
Gruss
                                                          \|/
       eMHa                                              (o o)
------------------------------------------------------oOO--U--OOo--
 Markus Hochholdinger
 e-mail  mailto:Markus@xxxxxxxxxxxxxxxxx             .oooO
 www     http://www.hochholdinger.net                (   )   Oooo.
------------------------------------------------------\ (----(   )-
                                                       \_)    ) /
                                                             (_/