Ich steh mal wieder vor einem simplen aber hartnäckigen Problem bei einem Shell-Skript:
Als einzigen Parameter übergeb ich eine Datei mit einer zeilenweisen Auflistung von Dateinamen.
Im Skript will ich dann jede Zeile auswerten hab hab folgenden Code
for file in $(cat $1)
do
echo $file #dient nur als Beispielfueller
done
Ist simpel und funktioniert soweit auch ABER wehe die Liste der Namen enhält Dateinamen mit Leerzeichen.
Dann wird lustig an den leerzeichen aufgespalten.
Wie würdet ihr das verhindern?
Meine wilden und zumteil unkoordinierten Versuche mit Klammern, Hochkommata oder dem verändern von IFS scheiterten bisher alle.
Einfache Frage (Hihi) zu einem Skriptproplem
-
- Beiträge: 85
- Registriert: 04.11.2002 18:22:26
- Wohnort: Berlin
Code: Alles auswählen
while read file; do echo $file ; done<$1
Beispiel:
Datei:
Code: Alles auswählen
ab cd
efgh
Code: Alles auswählen
echo "using \"for and cat\""
for file in `cat $1`; do echo $file; done
echo "using \"while and read\""
while read file; do echo $file ; done <$1
Code: Alles auswählen
using "for and cat"
ab
cd
efgh
using "while and read"
ab cd
efgh