Le 01/05/2010 09:18, Freddy Vulto a écrit : > I would like to call t(), and let it return me a filled variable by > reference, that is without polluting the global environment.
I'd like to know why you absolutely want the callee to perform a side-effect on the caller. This is your original sin IMHO. Side-effects are evil, use as little of them as you can. Here is a more functional approach: blackbox() { local a printf '%s\n' "$1=bar1" printf '%s\n' "$2=bar2" } f() { local b c # This eval is safe because we trust our own, simple blackbox # function eval $(blackbox b c) echo $b; echo $c } Of course whenever "blackbox" returns only one value the whole thing can be much simpler, just: b=$(blackbox)