Shell Script Problem

Jan 'RedBully' Seiffert redbully at cc.hs-owl.de
Fri Jan 22 02:07:44 CET 2010


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 $array[@]
> 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.



More information about the Linux mailing list