Übergabe von Argumenten per Referenz

Möchte ich Fragen, ob es möglich ist, Argumente zu einer script-Funktion per Referenz:

d.h. etwas zu tun, das würde dann so Aussehen in C++:

void boo(int &myint) { myint = 5; }

int main() {
    int t = 4;
    printf("%d\n", t); //t->4
    boo(t);
    printf("%d\n", t); //t->5
}

Also dann BASH ich möchte etwas machen wie:

function boo () 
{

    var1=$1       # now var1 is global to the script but using it outside
                  # this function makes me lose encapsulation

    local var2=$1 # so i should use a local variable ... but how to pass it back?

    var2='new'    # only changes the local copy 
    #$1='new'     this is wrong of course ...
    # ${!1}='new' # can i somehow use indirect reference?
}           

# call boo
SOME_VAR='old'
echo $SOME_VAR # -> old
boo "$SOME_VAR"
echo $SOME_VAR # -> new

Irgendwelche Gedanken würde geschätzt.

InformationsquelleAutor Roman M | 2009-02-12
Schreibe einen Kommentar