For-Schlaufe und Dateien mit Leerzeichen

Post Reply
Message
Author
aebi
Posts: 41
Joined: 02. Dec 1999 10:32
Location: Kastanienbaum

For-Schlaufe und Dateien mit Leerzeichen

#1 Post by aebi »

Hallo Zusammen

Ich habe da ein Problem...
Folgendes Bash-Script soll bei allen mitgegebenen Dateien dann Namen in Kleinbuchstaben umwandeln. Das funktioniert eigentlich einwandfrei. Ausser eine Datei enthält Leerzeichen, da For sie dann für 2 Dateinen hält.
Wie kann ich dem Abhelfen?

CODE:
for filename in $* ; do
&nbsp&nbsp #Verkleinern
&nbsp&nbsp n=`echo $filename | tr A-Z a-z`
&nbsp&nbsp #Nur Dateien die Grossbuchstaben enthalten...
&nbsp&nbsp if [ "$filename" != "$n" ] ; then
&nbsp&nbsp&nbsp&nbsp #Existiert die Datei schon?
&nbsp&nbsp&nbsp&nbsp if [ -e $n ] ; then
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp echo "Datei $n existiert schon!"
&nbsp&nbsp&nbsp&nbsp else
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp mv "$filename" "$n"
&nbsp&nbsp&nbsp&nbsp fi
&nbsp&nbsp fi
done

Merci
Philipp
Last edited by aebi on 01. Mar 2002 14:45, edited 2 times in total.

Jochen

Re: For-Schlaufe und Dateien mit Leerzeichen

#2 Post by Jochen »

Ändere den Kopf der for-Schleife um, dass er wie folgt aussieht: Entweder

for filename ; do

oder

for filename in "$@" ; do

Beides sollte gleich funktionieren. Vergiss aber nicht, dann um jedes Auftreten von $filename die Anführungszeichen zu setzen!

Jochen

aebi
Posts: 41
Joined: 02. Dec 1999 10:32
Location: Kastanienbaum

Re: For-Schlaufe und Dateien mit Leerzeichen

#3 Post by aebi »

Mein Held

Danke viel mal
Philipp

Post Reply