leichte bash-script-probleme

bafh

Member
Hi,
ich habe ein verzeichnis mit vielen dateien drin. diese dateien möchte ich nun mit einen bash-script bearbeiten. ich tippe also folgendes:
for i in `ls`; do echo $i ; done

das dumme ist nur, dass die dateien leerzeichen in ihren namen enthalten, was zur folge hat, dass der name zerstückelt wird.
Die dateien heissen z.B. :
Jimi Hendrix Little Wing.mp3
Jimi Hendrix Hound Dog.mp3

wenn ich nun for i in `ls`; do echo $i ; done eingebe, gibt er mir nicht folgendes, wie ich es eigentlich gerne hätte:

Jimi Hendrix Little Wing.mp3
Jimi Hendrix Hound Dog.mp3


sonder er zerstückelt die namen, das sieht dann so aus:
Jimi
Hendrix
Little
Wing.mp3
Jimi
Hendrix
Hound
Dog.mp3

Kann mir da jemand helfen bitte ...
danke im voraus ;-)
 
Ich behelfe mir immer durch:

while ls -1 | read zeile
do
echo "$zeile"
machwasmit "$zeile"
done

(die Syntax muss nicht 100% stimmen, habe ich gerade nicht getestet)
 
bafh: das problem is bloss das du die variable in anführungszeichen
(gänsefüsschen *G*) setzten must, da du ein string benutzt.

zur erklärung, bem verwenden von variablen sollte man die variablen
immer in anführungszeichen setzten wenn man definitiv nicht mit zahlen arbeitet.

da z.b. ein string wie in deinem falle ein lehrzeichen enthalten kann.
 
Danke, es hat geklappt, das hat mir wirklich wietergeholfen ;-)

Auf Anführungszeichen bin ich auch gekommen, das sah dann so aus:
for i in "`ls -1`"; do echo $i ; done

Das hatte zur Folge, dass er mir die Dateinamen alle hintereinanger ohne Zeilenunbruch ausgegeben hat.

Darauf, die Variable in Anführungszeichen zu setzen, wäre ich aber nicht selbst gekommen.

Danke für die schnelle Hilfe ;-)
 
Zurück
Oben