linux-l: (no subject)

Ralf Baerwaldt rade at rade2.bancos.com
Do Aug 13 15:13:45 CEST 1998


> 
> Wenn ich innerhalb einer if-Schleife eine Veränderung an der Variablen  

if ist keine Schleife sondern eine Verzeigung.
Aber dieser akademische Kommentar hilft dir sicher
nicht weiter.

Dein Problem ist die Verwendung von "(" und ")" !
Sie oeffnen jedesmal eine Sub-shell (Unterprogramm).
Dadurch wird die Variablenbelegung deines Hauptprogramms
nicht geaendert.

Wenn du die "(" und ")" weglaesst, kommt am Ende 705 heraus.
Wenn du Bloecke markieren willst/musst, dann musst du
zwingend "{" und "}" verwenden.

> monatsbeitrag=100
> echo $monatsbeitrag
> 
> if [ 1 != 2 ] ; then
> (
> 
> echo $monatsbeitrag
> # Liefert 100
> monatsbeitrag=$[monatsbeitrag + 5]
> echo $monatsbeitrag
> # Liefert 105
> 
> if [ 3 = 3 ] ; then
> (
> monatsbeitrag=$[$monatsbeitrag + 600]
> echo $monatsbeitrag
> # Liefert 705
> )
> fi
> 
> )
> fi
> 
> echo $monatsbeitrag
> # Liefert wieder 100



Ralf
(e-mail: rade at bancos.com)





Mehr Informationen über die Mailingliste linux-l