On 4/5/13 4:50 PM, Chet Ramey wrote: > On 3/25/13 9:37 PM, Dan Douglas wrote: >> Hello, >> >> $ function f { typeset +x x; typeset x=123; echo "$x"; sh -c 'echo >> "$x"'; }; x=abc f >> 123 >> abc >> $ echo "$BASH_VERSION" >> 4.2.45(1)-release >> >> This is inconsistent with a variable defined and exported any other way. >> (ksh93/mksh/zsh don't have this issue. Dash doesn't actually export the >> variable to the environment in this case, but just "localizes" it, and >> requires a separate export.) > > The question is whether or not variables in the temporary environment > passed to a shell function and that function's local variables exist in > the same namespace. Bash makes a distinction, to a certain extent, > between the two, but it's inconsistent, as you say. I'll take a look at > this, and maybe it will be in bash-4.3.
I figured out how to make this work in a consistent way. It turned out not to be as bad as I had thought it might. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/