Re: Shell Script: Variablen aus Schleife exportieren

Alexander Dalloz <[email protected]> Fri, 23 Sep 2005 15:45:07 +0200
Newsgroups gmane.linux.redhat.general.german
Message-ID <[email protected]>
Am Fr, den 23.09.2005 schrieb [email protected] um 10:46:

> Ich muss aus einer Datei einzelne Zeilen auslesen, die ich in einem
> Array Speichern will.
> Dieses Array soll wenn die Datei zuende gelesen ist zurückgegeben
> werden:
>                                  CODE
>                                    
>                             get_patterns()
>                                   {
>                                   i=0
>                grep -v "^#" $file_in | while read pattern
>                                    do
>                             patt[$i]="$pattern"
>                                   let i++
>                                   done
>                           return ${pattern[*]}
>                                   }
>                                    
>                              get_patterns
>                               echo "$?"
> 
> 
> 
> 1. Kann ich überhaupt mit return nicht-integer Werte zurückgeben?
> wenn ja, wie?

IMHO nein.

> 2. Wie kann ich auf den Wert von "i" auch ausserhalb der Schleife
> zugreifen? 
> Ich habe es schon mit export und declare -x versucht, aber das hab ich
> entweder nicht richtig gemacht oder es geht damit garnicht!

So geht das nicht. Durch die Pipe arbeitest du mit einer subshell. Die
korrekte Lösung funktioniert nach folgendem Prinzip:

while read foo; do
   whatever
done < <(grep -v '^#' file)

Referenz: http://www.tldp.org/LDP/abs/html/process-sub.html

> Heiner Wulfhorst

Alexander


-- 
Alexander Dalloz | Enger, Germany | GPG http://pgp.mit.edu 0xB366A773
legal statement: http://www.uni-x.org/legal.html
Fedora Core 2 GNU/Linux on Athlon with kernel 2.6.11-1.35_FC2smp 
Serendipity 15:41:17 up 2 days, 23:26, load average: 0.16, 0.13, 0.15

_______________________________________________
redhat-list-de mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/redhat-list-de
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBDNAbjEEG6lbNmp3MRAqm8AJ49F2Nyb2ToviVmdbtV2/aSqDXrDQCfWaST
N1/x6tgF7DwS7lfbeyTdl3c=
=4U/u
-----END PGP SIGNATURE-----