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?
Variablen auslesen
Re: Variablen auslesen
<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
for i in "1 2 3 4 5"; do echo $i; done
</font><hr></pre></blockquote>
ratte
Re: Variablen auslesen
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?
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?
Re: Variablen auslesen
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
for I in `cat /meine/datei/mit/werten` ; do
echo $I
done
</font><hr></pre></blockquote>
Jochen
Re: Variablen auslesen
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
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
Re: Variablen auslesen
Ach ja, eines noch: Poste solche Fragen doch bitte das nächste Mal unter "Programmieren - Allgemein".
Jochen
Jochen
Re: Variablen auslesen
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.
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.