Siduction Forum > Scripting & Kernelhacking

[EN] bash loop: Verzeichnisse mit Leerzeichen

(1/3) > >>

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
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks WYSIWYG Editor