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