Subject: Re: Different behavior w/ and w/o local
To: Jachym Holecek <freza@psi.cz>
From: Jachym Holecek <freza@psi.cz>
List: tech-userlevel
Date: 09/14/2003 11:55:32
> > Is this different behavior expected?  I've seen this happens with both /bin/sh
> > and /bin/ksh, though there is no mention to this in manpages, afaict.
> > Or should I be quoting assignments, like var="$1", to avoid problems?
> 
> When I try
> 
> f2() {
> 	local var
> 	var=$1
> 	echo $var
> }
> 
> it works as expected (/bin/sh on 1.6.1). So it looks like a bug (either
> in code or in manpage not documenting it).

After waking up a bit: in

	local var=$1

the '$1' is expanded first, then the 'local' command is processed. For
$1="foo bar" it really sees 'local var=foor bar' (try local var=$1="hello"
and then echo $bar. Surprise :)). Looking at the manpage again, I should
correct myself, as it says

	local [variable | -] ...

so an assigment is probably not expected here. So it does not look like
a bug after all (and sorry for chaotic post).

 	Regards,
 		-- Jachym Holecek