Page 1 of 1

ls in array

Posted: 20. Aug 2007 14:43
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

Posted: 21. Aug 2007 10:40
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

Posted: 23. Aug 2007 9:28
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

Posted: 23. Aug 2007 13:28
by Janka

Code: Select all

gibmirdieliste | while read BAND
do
  echo "Dies ist der Befehl für Band $BAND"
done
Janka

Posted: 23. Aug 2007 14:33
by ottto
Hallo Janka,
bin begeistert von Deiner Lösung.

Danke.
ottto