Ralph Meyer schrieb:
> Hallo Liste,
> 
> ich versuch mich gerade etwas in Shell Programmierung.
> Nicht allzu einfach wie ich finde.
> 
> Ich möchte mit dialog ein Menü generieren, wobei
> die einzelnen Optionen aus einer Datei kommen sollen.
> Aus verschiedenen Beispielen hab ich mir folgendes gebastelt.
> 
> <-- Code
> 
> #!/bin/sh
> 
> array=`cat targets.conf`
> n=0
> for item in $arr...@]
> do
> menuitems="$menuitems $n ${item}"
> let "n = $n + 1"
> done
> 

awk ftw!
menuitems=`awk '{ printf "%i \"%s\" ", NR, $0  }'`

[snip]
> Wie kann ich eine Zeile als ein array Element einlesen ?

Vergiss arrays, das ist eine BASH erweiterung, denke in streams.
Subshells helfen.

$(
line_nr=0;
while read line ; do
        echo -n $line_nr
        echo -n " "
        echo -n $line
        let "line_nr = $line_nr + 1"
done
) < input_file.txt > output

Da koennen jetzt noch Syntaxfehler drin sein, aber im Prinzip geht das, ich hab
da mal so ein paar Monster ueber drei subshells zusammen gepiped...

> Mit cat, wie hier, macht er ja 4 Elemente draus.
> Und wie kann ich mir dann den Zeileninhalt zurückgeben
> lassen ?

Eigentlich mit sed, der ja wie ed steuerbar ist (nein, nicht nur immer
substitute, auch sowas wie gib mir die 4te Zeile), ich kann nur ed nicht 
steuern...

> 
> Ich hoffe es ist einigermaßen verständlich was ich möchte
> und jemand kann mir helfen.
> 
> Ralph

Gruss
        Jan

-- 
Wir evaluieren unsere proaktiven Optionen,
um den logischen Shift der antizyklischen Basics zu wagen.
--
Linux mailing list [email protected]
subscribe/unsubscribe: http://lug-owl.de/mailman/listinfo/linux
Hinweise zur Nutzung: http://www.lug-owl.de/Mailingliste/hints.epo

Antwort per Email an