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