Siduction Forum > Scripting & Kernelhacking
[EN] bash loop: Verzeichnisse mit Leerzeichen
cas:
EDIT:
I would like to iterate over directories in bash.
I dont know how to do it, when directories have empty space in their names.
+++++++++++++++++++++++++++++++++++++++++++
Hallo,
ich möchte über Verzeichnisnamen iterieren, bspw mit einer for-Schleife.
Was mache ich, wenn Verzeichnisnamen Leerzeichen enthalten?
Bspw im CWD habe ich die Verzeichnisse "bla bla bla", "foo bar", etc , über die iteriert werden soll.
Bislang habe ich die Verzeichnisnamen immer umbenannt, so dass keine Leerzeichen mehr vorkamen, aber das muss doch anders gehen.
Grüße, C
melmarker:
wie wäre es mit Anführungszeichen
cas:
Leider funktioniert das nicht.
--- Code: ---$ mkdir "bla bla bla" "foo bar"
$ for DIR in "bla\ bla\ bla" "foo\ bar" ; do cd $DIR; ls ; cd - ;done
bash: cd: Zu viele Argumente.
$ for DIR in 'bla\ bla\ bla' 'foo\ bar' ; do cd $DIR; ls ; cd - ;done
bash: cd: Zu viele Argumente.
--- End code ---
Außerdem würde ich dies gerne generieren lassen, ähnlich wie ls, falls es mal sehr viele Verzeichnisse sind, bzw damit ich es immer wieder verwenden kann.
Gruss, C
musca:
Hallo cas,
das Problem ist dein
--- Code: ---cd $DIR
--- End code ---
die shell ersetzt zuerst den Variablennamen durch deren Inhalt, dann wird die entstehende Zeile interpretiert.
Dabei enstehen im Allgemeinen durch die Leerzeichen neue Bedeutungen.
melmarker meinte genau diese Lösung:
--- Code: ---cd "$DIR"
--- End code ---
Dabei verhindern die Anführungsstriche, dass der Verzeichnisname in mehrere Argumente zerfällt.
bashly greetings
musca
cas:
verstehe.
danke!
Navigation
[0] Message Index
[#] Next page
Go to full version