Hi!
Wie kann ich ein Script dazu bringen das es mir einen Dateinamen mit Leerzeichen als einen Parameter ansieht?
Folgendes Testscript mit Namen "ScriptDateiname.sh" soll einfach alle ihm übergebenen Parameter ausgeben:
Code:
#!/bin/sh
for param in $*;do
echo "$param"
done
So schauen meine Dateien aus:
Code:
darko@base:~/test$ ll
insgesamt 4,0K
-rw-r--r-- 1 darko darko 0 2005-09-04 12:28 Datei mit Leerzeichen.txt
-rw-r--r-- 1 darko darko 0 2005-09-04 12:30 DateiohneLeerzeichen.txt
-rwxr-xr-x 1 darko darko 49 2005-09-04 12:27 ScriptDateiname.sh
darko@base:~/test$
Wenn ich nun die Datei ohne Leerzeichen angebe dann funktioniert es:
Code:
darko@base:~/test$ ./ScriptDateiname.sh DateiohneLeerzeichen.txt
DateiohneLeerzeichen.txt
darko@base:~/test$
Die Datei mit Leerzeichen wird aber als drei verschiedene Parameter interpretiert:
Code:
darko@base:~/test$ ./ScriptDateiname.sh Datei\ mit\ Leerzeichen.txt
Datei
mit
Leerzeichen.txt
darko@base:~/test$
Auch wenn ich den Dateinamen in doppelte Anführungszeichen setze:
Code:
darko@base:~/test$ ./ScriptDateiname.sh "Datei\ mit\ Leerzeichen.txt"
Datei\
mit\
Leerzeichen.txt
darko@base:~/test$ ./ScriptDateiname.sh "Datei mit Leerzeichen.txt"
Datei
mit
Leerzeichen.txt
darko@base:~/test$
Und genauso in einfache Anführungszeichen:
Code:
darko@base:~/test$ ./ScriptDateiname.sh 'Datei\ mit\ Leerzeichen.txt'
Datei\
mit\
Leerzeichen.txt
darko@base:~/test$ ./ScriptDateiname.sh 'Datei mit Leerzeichen.txt'
Datei
mit
Leerzeichen.txt
darko@base:~/test$
Weiß einer von euch wie das geht?
Ach ja, und schlussendlich will ich dann dem Script auch mehrere Dateinamen als Parameter übergeben können.
MfG
Darko
Lesezeichen