ddamjan
04.09.05, 12:31
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:
#!/bin/sh
for param in $*;do
echo "$param"
done
So schauen meine Dateien aus:
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:
darko@base:~/test$ ./ScriptDateiname.sh DateiohneLeerzeichen.txt
DateiohneLeerzeichen.txt
darko@base:~/test$
Die Datei mit Leerzeichen wird aber als drei verschiedene Parameter interpretiert:
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:
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:
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
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:
#!/bin/sh
for param in $*;do
echo "$param"
done
So schauen meine Dateien aus:
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:
darko@base:~/test$ ./ScriptDateiname.sh DateiohneLeerzeichen.txt
DateiohneLeerzeichen.txt
darko@base:~/test$
Die Datei mit Leerzeichen wird aber als drei verschiedene Parameter interpretiert:
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:
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:
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