Ich versuche gerade ein Script so zu ändern dass es mit Dateinamen die Leerzeichen enthalten zurechtkommt. Dabei stosse ich auf folgendes Problem:
$DIRNAME ist dabei /usr/bin/dirname, $src der Name der Datei. Damit das Skript auch mit Leerzeichen in $src zurechtkommt wird der Name in einfache Anführungszeichen gefasst, also
Trotzdem funktioniert das nicht, dirname meldet einen Fehler, in obigem Beispiel wäre das
Die Debug Ausgabe lautet:
Und wenn ich diesen Aufruf von dirname in einer bash eingebe bekomme ich _keinen_ Fehler.
Wie bekomme ich den Fehler weg?
Code:
cmd="$DIRNAME $src"
[ $opt_debug ] && echo "DEBUG cmd: $cmd"
workdir=`$cmd`
Code:
'/path/to/file with blanks.txt'
Trotzdem funktioniert das nicht, dirname meldet einen Fehler, in obigem Beispiel wäre das
Code:
/usr/bin/dirname: extra operand `with'
Try `/usr/bin/dirname --help' for more information.
Die Debug Ausgabe lautet:
Code:
DEBUG cmd: /usr/bin/dirname '/path/to/file with blanks.txt'
Und wenn ich diesen Aufruf von dirname in einer bash eingebe bekomme ich _keinen_ Fehler.
Wie bekomme ich den Fehler weg?
ich brauch mir nur mal meinen Rechner anschauen, zig Dateien alleine mit Zeilensprüngen von Leerzeichen, Klammern und allem möglichen druckbaren und nicht druckbaren Sonder Zeichen mal abgesehen. Zum Teil absichtlich angelegt und zum Teil durch Konsolverseher einfach so passiert. Dazu noch Dateinamen in arabisch, chinesisch, russisch ...... kann ich niemals entziffern sieht aber lustig aus.