On Thu, Jul 11, 2024, 16:34 alex xmb sw ratchev <fxmb...@gmail.com> wrote:
> > > On Thu, Jul 11, 2024, 15:42 Dr. Werner Fink <wer...@suse.de> wrote: > >> Hi, >> >> I've a report that with later bash the following which works in bash-4.2 >> >> x () { >> local x=y >> declare -p x >> echo $x >> unset x >> declare -p x >> echo $x >> } >> >> with >> >> linux-40cm:~ # x () { >> > local x=y >> > declare -p x >> > echo $x >> > unset x >> > declare -p x >> > echo $x >> > } >> linux-40cm:~ # x >> declare -- x="y" >> y >> -bash: declare: x: not found >> >> but with bash-5.X the reporter sees (and complains) >> >> sl15sp5:~ # x () { >> > local x=y >> > declare -p x >> > echo $x >> > unset x >> > declare -p x >> > echo $x >> > } >> sl15sp5:~ # x >> declare -- x="y" >> y >> declare -- x >> > > id aay the v5 is more valid as error got replaced by working code ( > var=foo ; sav=$( declare -p var ) ; .. ; eval "$var" ( or maybe another > noeval version ) > sorry , eval "$sav" , not $var greets > > ... for global variables it works as expected. >> >> Werner >> >> -- >> "Having a smoking section in a restaurant is like having >> a peeing section in a swimming pool." -- Edward Burr >> >