Expansion von Shell-Variablen

24/11/2007 - 18:27 von Jakobus Schuerz | Report spam
Sorry, ich bin vorher in der falschen Gruppe gelandet.
Hab dort auch schon das Posting zurückgezogen (wenn es mir mit Pan denn
gelungen ist...)

Wie stelle ich es am besten an, damit ich folgendes erledigt bekomme.
Meine Konfigurationsdatei schaut so aus:

Section OST=1,2,3,4,...
Section SUED=2,5,6,7,8,...
...
...
...


Was gleich bleibt ist der Eintrag "Section " und das Format der
nachfolgenden Section "XXX*=[0-9]*,[0-9]*,..."


Dann erzeuge ich mir aus einer Auswertung eine Liste:
LISTE=1,2,3,8,...

Also die Listen ergeben sich aus einer Auswertung, und die Sections
können sich àndern, möchte ich daher per Konfig-Skript vorgeben können.

Und im Endeffekt möchte ich prüfen, welche Eintràge aus welcher Sektion
in der Liste vorkommen, um am Ende den Namen einer Section als Ergebnis
zu bekommen.



Sinn der Sache ist es, aus der Konfig-datei in einem bestimmten Punkt im
Skript nur die Zeilen '^Section' auszulesen, und danach mit export eval
die Zuweisung zu den Variablen stattfinden zu lassen.
eval export $(awk '/^Section[[:space:]]/ {$1=""; print $0}' "$CONFDIR/
$1.conf"|sed 's/^[[:space:]]*//'|sed 's/^ *//g')

Erledigt das für mich.

In einem weiteren Schritt möchte ich die zuvor eingelesenen Variablen mit
einer for-Schleife aufrufen.

SECLIST=`awk -F "=" '/^Section[[:space:]]/ {print $1}' "$CONFDIR/
wien.tram.conf"|sed 's/^Section[[:space:]]*//'`


$SECLIST ist also eine Variable in der die Namen von Variablen
gespeichert sind.
Ich möchte jetzt den Inhalt der einzelnen Variablen, die in $SECLIST
gespeichert sind, ausgeben.


aber for i in `echo $SECLIST`;do echo "$i";done

liefert sinnigerweise die Namen der Variablen, aber nicht deren Inhalt.

wie muss der Befehl aussehen, damit ich sinngemàß weiterarbeiten kann:

for i in `echo $SECLIST`;do `gib mit den Inhalt der Variable, die in $i
gespeichert ist`|while read j;do echo j;done ;done

hoffe das war jetzt nicht zu umstàndlich erklàrt.

lg jakob
 

Lesen sie die antworten

#1 Cyrus Kriticos
24/11/2007 - 19:23 | Warnen spam
Jakobus Schuerz wrote:
[...]
wie muss der Befehl aussehen, damit ich sinngemàß weiterarbeiten kann:

for i in `echo $SECLIST`;do `gib mit den Inhalt der Variable, die in $i
gespeichert ist`|while read j;do echo j;done ;done



[bash]

Wenn in $SECLIST z.B. folgendes steckt "OST SUED"


for i in $SECLIST; do
echo "${!i}"
done

hoffe das war jetzt nicht zu umstàndlich erklàrt.



:)

Best regards | Be nice to America or they'll bring democracy to
Cyrus | your country.

Ähnliche fragen