Shell : Befehl an Variable übergeben

Bash, Shell, PHP, Python, Perl, CGI
joern
Posts: 48
Joined: 2004-07-30 13:41

Shell : Befehl an Variable übergeben

Post by joern » 2006-05-28 15:52

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

User avatar
Joe User
Project Manager
Project Manager
Posts: 11616
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Shell : Befehl an Variable übergeben

Post by Joe User » 2006-05-28 16:16

Ungetestet:

Code: Select all

verz=($(ls -Ap | grep /))
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

joern
Posts: 48
Joined: 2004-07-30 13:41

Re: Shell : Befehl an Variable übergeben

Post by joern » 2006-05-28 17:24

Hey der Befehl ist um einiges passender als der Meinige.
So gebe ich ja nur den Verzeichnisnamen aus.

Vielen Dank :-D

VG
Jörn

User avatar
Joe User
Project Manager
Project Manager
Posts: 11616
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Shell : Befehl an Variable übergeben

Post by Joe User » 2006-05-28 17:39

Dann gefällt Dir Folgendes, ebenfalls ungetestet, noch besser:

Code: Select all

verz=($(ls -Ap | grep / | sed 's|/$||g'))
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

rootmaster
RSAC
Posts: 536
Joined: 2002-04-28 13:30
Location: Hannover

Re: Shell : Befehl an Variable übergeben

Post by rootmaster » 2006-05-30 01:34

alternativ für die verzeichnisse:

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

"back to the roots"

thorsten
RSAC
Posts: 732
Joined: 2003-02-01 13:14
Location: Fuldatal

Re: Shell : Befehl an Variable übergeben

Post by thorsten » 2006-05-30 09:25

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 */))