Vinzenz Mai: Dateiinhalt in einem Array speichern! (Shell)

Beitrag lesen

Hallo Banana,

Ich speichere den Inhalt der Textdatei zunächst in eine Variable und diese Variable verwende ich später um das Array zu füllen.

warum liest Du den Inhalt nicht gleich in ein Array ein?

Wenn ich diesen Code:
array=($inhalt);
in die KOnsole eingebe, dann wird mir der Inhalt der Variable in das Array reingespeichert, genau so wie ich es haben wollte.

Was mache ich denn falsch?

Du enthältst uns Dein Shellskript vor. Hellsehen kann ich leider nicht.

Wenn Deine Datei die Daten allesamt in einer Zeile hat (warum eigentlich?), dann kannst Du wie folgt vorgehen:

#---------------------------------------------------

Datendatei (eine einzige Zeile)

#---------------------------------------------------
Alpha Beta Gamma Delta

#---------------------------------------------------

Shellskript:

#---------------------------------------------------
#!/bin/bash
declare -a liste                   # Lege eine eine Arrayvariable an

Einlesen der aus einer einzigen Zeile bestehenden Eingabedatei in das Array

Die Option -a von read sorgt dafür, dass jedes einzelne Wort einem

Arrayelement zugewiesen wird.

Die Eingabeumlenkung mit

#    < /path/to/file (durch den korrekten Pfad zur Datendatei ersetzen :-))

sorgt dafür, dass statt von der Standardeingabe aus der Datei gelesen wird

read -a liste < /path/to/file      #
Diese Zeile ist eigentlich alles,
                                   # was Du benötigst

Kontrollausgabe aller Arrayelemente in einer Schleife

for i in ${liste[*]};              # Durchlaufe alle Arrayelemente
do
    echo $i;                       # und gebe sie zeilenweise aus
done

#---------------------------------------------------

Ausgabe:

#---------------------------------------------------
Alpha
Beta
Gamma
Delta

Freundliche Grüße

Vinzenz