Variablen auslesen

Post Reply
Message
Author
magforce

Variablen auslesen

#1 Post by magforce »

Ich schreibe gerade ein Script, wo ein Installationsprozess automatisiert werden soll! ABer das nur so nebenbei!

Mein Problem dabei ist, wie kann ich aus einer Zeile, in der mehrere Werte stehen, welche durch ein Leerzeichen getrennt sind, jeden einzelnen Wert als sepperate Variable auslesen?

ratte

Re: Variablen auslesen

#2 Post by ratte »

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
for i in "1 2 3 4 5"; do echo $i; done
</font><hr></pre></blockquote>

ratte

magforce

Re: Variablen auslesen

#3 Post by magforce »

Danke ratte, aber ich fürchte das reicht mir nicht aus!

Die Werte stehen bereits in einer Datei! Und nun möchte ich die Werte aus der Datei als Variablen lesen!

Kannst Du mir da weiter helfen?

Jochen

Re: Variablen auslesen

#4 Post by Jochen »

Wenn sichergestellt ist, dass der Inhalt der Datei nicht sehr gross ist (wenige KB), kannst Du mit Kommandosubstitution arbeiten:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
for I in `cat /meine/datei/mit/werten` ; do
echo $I
done
</font><hr></pre></blockquote>

Jochen

Jochen

Re: Variablen auslesen

#5 Post by Jochen »

Sollte die Datei mit den Werten jedoch sehr gross werden können, sollte man eher zu einer while-Schleife greifen:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">tr -s ' \11\12' '[<!--no-->\12*<!--no-->]' </meine/datei/mit/werten | while read I ; do
echo $I
done</font><hr></pre></blockquote>

Das tr(1) sorgt lediglich dafür, dass Folgen von Whitespace (Blanks, Tabs, Newline) durch genau ein Newline ersetzt werden, so dass jeder Wert in seiner eigenen Zeile steht.

Jochen

Jochen

Re: Variablen auslesen

#6 Post by Jochen »

Ach ja, eines noch: Poste solche Fragen doch bitte das nächste Mal unter "Programmieren - Allgemein".

Jochen

hubert

Re: Variablen auslesen

#7 Post by hubert »

sehr simpel aber nicht sehr flexibel/leistungsfähig ist foldendes:

set `cat datei`

damit stehen die einzelnen spalten nun in $1, $2,..... (eventuell vorhandene parameter werden überschrieben). echo $3 gibt zb die dritte spalte aus.
wenn die datei mehrere zeilen hat musst du die gewünschte halt noch rausgreppen.

Post Reply