PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scripping



Dirk_G
10.07.03, 18:42
Hallo Leute

Bin im Moment fleißig am Scripte schreiben. Dabei ist mir was aufgefallen was ich nicht verstehe.
Wenn ich aus einem Script ein weiteres aufrufe, so Unterprogramm mäßig, wird das erste doch an dieser Stelle angehalten bis das Zeite vertig ist, oder????
Beispiel:
.
.
./zweite.script "wert1" "wert2"
if [ "$?" != "0" ];then
exit 1
fi
...

Also, ich rufe das Zeite Script auf und gibt im noch zwei Werte mit. Wenn es fertig ist und der Rückgabewert nicht 0 ist soll das Erste weitermachen, ansonsten abbrechen!!!
Das ging auch die ganze zeit gut. Nur jetzt auf einmal nicht. Wenn ich aber vor dem 'if' ein sleep 10 einfüge geht es wieder. Das zweite brauch nähmlich nur ca. 1-3 sekunden!!!
Dann hab ich noch ein bißschen rumprobiert und festgestellet, das nach dem aufruf des zeiten Scripts direkt weitergemacht wird!!!
Wieso ist das so??? und wie kann ich das machen das er genau an dieser Stelle wartet bis das Zweite fertig ist?


Dirk

BBlack
10.07.03, 18:54
Hi! Füg anstatt nem sleep einfach ein wait ein, dann sollte es gehen denke ich!

Dirk_G
10.07.03, 20:17
Ne, mit 'wait' gehts nicht!!!

wait will die PID haben und die weis ich nicht. Die müsste ich dann aus ps rausfilten, was aber gehen würde.
Gibts da keine andere Lösung???


Dirk

Dirk_G
11.07.03, 09:43
OK, habs rausgefunden woran es gelegen hat.

Im Zweiten Script hab ich wget mit der Option -b in den Hintergrund geschickt, der das ganze Script mitgenommen hat. Ohne -b gehts.


Dirk

cirad
11.07.03, 13:35
Irgendwie peile ich das mit dem sleep nicht. Wenn du ein sleep vor if setzt, gibt sleep als Rückgabewert 0 zurück und du kannst dir die Auswertung dann im Endeffekt sparen. Oder sehe ich da gerade etwas falsch?

Dirk_G
11.07.03, 14:16
Original geschrieben von cirad
Irgendwie peile ich das mit dem sleep nicht. Wenn du ein sleep vor if setzt, gibt sleep als Rückgabewert 0 zurück und du kannst dir die Auswertung dann im Endeffekt sparen. Oder sehe ich da gerade etwas falsch?

Ne, das siehst du richtig. Daher sollte das Script ja auch bei ./script2..... stehenbleiben!!!


Dirk