linux-l: (no subject)

Stefan Bund bund at zedat.fu-berlin.de
Fr Aug 14 11:50:17 CEST 1998


> 
> Wenn ich innerhalb einer if-Schleife eine Veränderung an der Variablen  
> zuweise, so bleibt außerhalb der if-Schleife aber der alte Wert erhalten.  
> Wie muß ich das machen?
> 
> Gruß & Dank
> 
> --------------------------------------------------------------------------
> 
> #!/bin/bash
> 
> 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
> 


Liegt an den überflüssigen runden Klammern. DIe Klammern besagen, das eine
Subshell gestartet wird, die dann die Kommandos innerhalb der Klammer
ausführt:

( cd foo; bla )
baz

Führt bla im Verzeichnis foo aus, baz aber im aktuellen Verzeichnis. Mit
Variablen ist das genauso.

Stefan.

-- 
                                    @ @
 -------------------------------oOO-(_)-OOo---------------------------
 Stefan Bund, student of physics at Freie Universitaet Berlin, Germany

 email: bund at zedat.fu-berlin.de        ( or bund at physik.fu-berlin.de )
        bund at berlin.cid-net.de
 ---------------------------------------------------------------------
 




Mehr Informationen über die Mailingliste linux-l