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

Re: Script geht nicht



Am 2012-08-06, David Raab <debian@david-raab.de> schrieb:

> "fuser" führt in deinem Beispiel lediglich "mv" aus oder nicht.
> Wenn nachfolgende Anweiseungen dort stehen würden, würden diese
> einfach durchlaufen.

Nein, schau Dir nochmals den Code an. Ich habe ihn nur noch
sinngemaesz vor Augen, der war etwa so:

  for DATEI in $DATEIEN; do
    mv $DATEI $ZIEL
  done

Und ich empfahl sinngemaesz zwei Verbesserungen:

  for DATEI in $DATEIEN; do
    fuser "$DATEI" > /dev/null 2>&1 || mv "$DATEI" $ZIEL
  done

Nicht mehr; nicht weniger.

Von Zugriffen auf die Quelle war keine Rede. Ich rede davon, dasz
ich erst die Endgueltigkeit der Quelle pruefe, bevor ich sie ins
Ziel verschiebe (oder auch kopiere).

> Wenn du mir jetzt sagst. "Da kommt aber nichts danach". Korrekt.

In dem Skript kam nichts danach; sonst gehoert das natuerlich in ein
entsprechendes Konstrukt. Das ist doch weder schwierig noch
aufwaendig.

>> Und da ich nicht weisz, wie die naechsten Prozesse mit
>> Halbgegorenem verfahren, ist. Der fuser-Aufruf erledigt das mit
>> einem Einzeiler.

> In deinem beispiel aber nicht, da du nirgendswo abbrichst.

Es ging um die Prozesse, die die Weiterverarbeitung _im_ _Ziel_
vornehmen, nicht in der Quelle. Denen sollte nichts Unfertiges
vorgeworfen werden.

> Naja, ein Einzeiler der nicht das tut was du glaubst war nicht
> aufwendig.

Er tut es.

Sonst haette ich ja zu folgendem angeregt:

  for DATEI in $DATEIEN; do
    if ! fuser "$DATEI" > /dev/null 2>&1; then
      mv "$DATEI" $ZIEL
      $BEFEHL_1 $PARAMETER_1
      $BEFEHL_2 $PARAMETER_2
      ...
      $BEFEHL_N $PARAMETER_N
    fi
  done

Nun ist auf Grund des "if..fi" eben ein Zweizeiler dazugekommen.

> Man sollte noch dazu schreiben warum man etwas tut.

Ich regte hilfreich an; ich machte nicht die Hausaufgaben anderer.

Grusz,

Peter Blancke

-- 
Hoc est enim verbum meum!


Reply to: