ls in array

Post Reply
Message
Author
ottto
Posts: 176
Joined: 09. Sep 2004 15:00

ls in array

#1 Post by ottto »

Hallo,
ich möchte in einem Shell-Script ein array mit der Ausgabe eines Kommandos füllen.
Wie bekomme ich z.B. die Dateinamen "ls" in ein Array oder eine Variable????

Danke.
ottto

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Was willst du erreichen? Ich frage das, weil es in Shellscripts üblicherweise die komplizierteste Methode ist, erstmal alle Daten in Variablen zu speichern, und dann daraufhin irgendetwas zu tun.

Das hängt damit zusammen, dass man zum Parsen der Ausgabe eines Kommandos üblicherweise eine Pipeline verwenden muss, und damit das zurechtgemachte Ergebnis schlecht wieder zurück in den die Pipeline aufrufenden Shellprozess bekommt.

Deshalb ist es günstiger, die bezweckten Aktionen gleich in der Pipeline zu machen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

ottto
Posts: 176
Joined: 09. Sep 2004 15:00

#3 Post by ottto »

Hallo Janka,
vielen Dank für die Antwort.
An dem Rechner hängt ein Bandwechsler zur Datensicherung mit spezieller Software.
Ich bekomme mit einem Befehl eine Liste von entsprechenden Bandnamen angezeigt.
Jetzt muss mit jedem Bandnamen der gleiche Befehl abgesetzt werden.


Lösung:
die Ausgabe wird in eine /tmp/Datei geschrieben. Im nächsten Schritt wird dann die Datei zeilenweise in einer for-Schleife gelesen und der Befehl zusammengesetz. Funktioniert.

Schellscriptneuling ottto

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

Code: Select all

gibmirdieliste | while read BAND
do
  echo "Dies ist der Befehl für Band $BAND"
done
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

ottto
Posts: 176
Joined: 09. Sep 2004 15:00

#5 Post by ottto »

Hallo Janka,
bin begeistert von Deiner Lösung.

Danke.
ottto

Post Reply