Linux 15.046 Themen, 107.201 Beiträge

Script-Routine: for-Schleife: wie denn oder wie sonst?

edico / 10 Antworten / Flachansicht Nickles

Hej folks,

Problembereich "Script-Routine": Eine gepackte Datei wird gesplittet und soll via Disketten verschoben werden. Der gepackte tar wird Disk-gemäss gesplittet nach file.tgz.001, file.tgz.002 ...

So läufts nach dem Packen und Splitten mit 2 Disks:
mount /floppy
mv *.001 /floppy
umount /floppy
echo Disk wechseln ... [Ret]
read
mount /floppy
mv *.002 /floppy
umount /floppy
echo Done ... [Ret]
read

Wie heisst die Schleife, um floppy zu mounten, file.tgz.001 zu verschieben, zu unmounten .. und die Schleife beginnt von vorne. Notwendig, wenn nicht klar ist,
wieviele Disks nötig: also nicht nur 2, sondern 3 oder 4.

Ich hatte folgenden Versuch gestartet:
for i in file.tgz.*i; do
mount /dev/fd0;
mv *.0* /floppy;
umount /dev/fd0;
echo Diskette wechseln ... [ENTER]
read
done

Ha, sagt der Fachmann - so läuft das natürlich nicht.
Ja, das hab ich auch gemerkt. Der Script schiebt den 1. gesplitteten file auf die Disk - aber nur zum Teil, und statt nun auf echo und read zu warten, schiebt er den anderen gesplitteten files auch nur zum Teil auf die Disk und kommt dann erst zu read ... und schliesst zu guter letzt den Script ab!
Wo ist der Fehler in meiner Schleife?

Danke. edico

bei Antwort benachrichtigen
Klaus_T edico „Hej Klaus, es war wohl schon zu spät, dass ich die mv-Zeile nicht registriert...“
Optionen

Also, ich habe gerade das hier ausprobiert:

#!/bin/sh

for i in file.tgz.001 file.tgz.002 file.tgz.003; do
mount /dev/fd0
mv $i /floppy
umount /dev/fd0
echo "Diskette wechseln"
read
done

Das klappt einwandfrei. Das Problem ist jetzt noch, wieviele Dateien es sind. Das rauszufinden wird wohl ein bischen kniffelig. Ich arbeite daran.

Klaus

bei Antwort benachrichtigen
Merci, Klaus. edico edico