Argumente an mkisofs übergeben

From: Patrick Hess <patrick-hess(at)freenet.de>
Date: Sun, 29 Feb 2004 20:35:13 +0100

Hallo,

ich habe hier ein mehr als nerviges Problem mit mkisofs.
Dazu folgender Ausschnitt aus einem größeren Bash-Skript:
____________________________________________________________________

read -e DIRECTORIES
mkisofs -o /tmp/Image.iso $DIRECTORIES
____________________________________________________________________

Zunächst wird also eingelesen, welche Verzeichnisse bzw. Dateien der
Benutzer gerne im Image haben möchte und diese dann anschließend an
mkisofs übergeben.

Will man mehrere Verzeichnisse (oder auch Dateien) in das Image
packen, trennt man diese ja durch ein Leerzeichen. Das funktioniert
soweit ganz prima.

Kommt nun allerdings in einem Verzeichnis- oder Dateinamen schon ein
Leerzeichen vor, wird dies zwar bei der Eingabe maskiert, das kommt
aber schon gar nicht mehr bei mkisofs an:

Eingabe: Software/AntiVir\ 6.exe

Ergebnis: mkisofs beschwert sich, daß es keine Datei namens
           "Software/AntiVir"
           gäbe. Das Leerzeichen ist bei der Übergabe an mkisofs
           nicht mehr maskiert.

Also neue Variante des Skripts:
____________________________________________________________________

read -e DIRECTORIES
mkisofs -o /tmp/Image.iso "$DIRECTORIES"
____________________________________________________________________

Nun kann ein Verzeichnis- oder Dateiname zwar Leerzeichen enthalten,
ich kann aber gleichfalls keine Leerzeichen mehr zur Trennung
mehrerer Verzeichnisse/Dateien benutzen:

Eingabe: Software/AntiVir\ 6.exe Software/PuTTY

Ergebnis: mkisofs beschwert sich, daß es keine Datei namens
           "Software/AntiVir 6.exe Software/PuTTY"
           gäbe. Klar, das Leerzeichen wirkt nicht mehr als Trenner.

So kann ich also immer nur eine einzige Datei bzw. ein einziges
Verzeichnis dem Image hinzufügen. Das stellt mich nicht gerade
zufrieden.

Dann habe ich es, mittlerweile leicht genervt, folgendermaßen
versucht:
____________________________________________________________________

while /usr/bin/true
do
  read -e ITEM

  if [ -z "$ITEM" ]
     then break
  fi

  DIRECTORIES=\'$ITEM\'\ $DIRECTORIES
done

echo $DIRECTORIES # Ausgabe der Variablen nur zur Kontrolle...

mkisofs -o /tmp/Image.iso $DIRECTORIES
____________________________________________________________________

Eingabe: Software/AntiVir\ 6.exe [ENTER]
           Software/PuTTY [ENTER]
           [ENTER]

Ausgabe von echo:
           'Software/PuTTY' 'Software/AntiVir 6.exe'

Das sieht ja eigentlich gut aus, dachte ich, aber...

Ausgabe von mkisofs:
            mkisofs: No such file or directory.
            Invalid node - 'Software/PuTTY'

Arrrgh, verflucht. Jetzt werden die Single Quotes als Teil des
Dateinamens interpretiert. Das ist doch zum #$*"!%

Die Leerzeichen sind da, die bleiben auch dort, aber wie bringe ich
das diesem blöden mkisofs bei? Hat jemand hier eine Idee?
Vielen Dank im Voraus.

Gruß,
Patrick

-- 
Scanner unter FreeBSD:   
http://phess.de.vu/FreeBSD-Scanner/FreeBSD-Scanner.html
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 29 Feb 2004 - 20:43:36 CET

search this site