Page 1 of 1

Shell : Befehl an Variable übergeben

Posted: 2006-05-28 15:52
by joern
Hallo zusammen,

ich habe ein kleines Problem mit folgendem Befehl:

verz=($(ls -l | grep ^d))

Mit ls -l | grep ^d werden alle Unterverz. des aktuellen Verzeichnisses aufgelistet. Das funktioniert prächtig.

Wenn ich die Befehlskette nun der Variablen verz zuweise kommt nur
mist dabei heraus.

Bei diesem Befehl hingegen klappt es hervorragend:

verz=($(find / -name $verzeichnis -type d))

Wie kann ich es bewerkstelligen, dass das Array mit den Unterverzeichnissen gefüllt wird ?

Danke
VG
Jörn

Re: Shell : Befehl an Variable übergeben

Posted: 2006-05-28 16:16
by Joe User
Ungetestet:

Code: Select all

verz=($(ls -Ap | grep /))

Re: Shell : Befehl an Variable übergeben

Posted: 2006-05-28 17:24
by joern
Hey der Befehl ist um einiges passender als der Meinige.
So gebe ich ja nur den Verzeichnisnamen aus.

Vielen Dank :-D

VG
Jörn

Re: Shell : Befehl an Variable übergeben

Posted: 2006-05-28 17:39
by Joe User
Dann gefällt Dir Folgendes, ebenfalls ungetestet, noch besser:

Code: Select all

verz=($(ls -Ap | grep / | sed 's|/$||g'))

Re: Shell : Befehl an Variable übergeben

Posted: 2006-05-30 01:34
by rootmaster
alternativ für die verzeichnisse:

ls -d */|cut -d / -f 1

"back to the roots"

Re: Shell : Befehl an Variable übergeben

Posted: 2006-05-30 09:25
by thorsten
Meist stört der Slash nicht und braucht nicht entfernt zu werden.
-U spart bei großen Verzeichnissen einiges an Zeit
-m separiert die Einträge mit Kommas -kann hilfreich sein
also
verz=($(ls -UdQ */))
bzw
verz=($(ls -UdmQ */))