Einfache Frage (Hihi) zu einem Skriptproplem

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
sowosammer
Beiträge: 85
Registriert: 04.11.2002 18:22:26
Wohnort: Berlin

Einfache Frage (Hihi) zu einem Skriptproplem

Beitrag von sowosammer » 21.01.2005 21:57:23

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.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 21.01.2005 22:04:01

Code: Alles auswählen

while read file; do echo $file ; done<$1
#######################
Beispiel:

Datei:

Code: Alles auswählen

ab cd
efgh
Script

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
Ausgabe:

Code: Alles auswählen

using "for and cat"
ab
cd
efgh
using "while and read"
ab cd
efgh

Antworten