|
From: | dethrophes |
Subject: | Re: inconsistency with "readonly" and scope |
Date: | Thu, 12 Apr 2012 20:16:37 +0200 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 |
Am 12.04.2012 14:27, schrieb Chet Ramey:
I only see the problem in large complex cases, I've tried to reproduce a simple example a couple of times but without success.On 4/11/12 4:12 PM, dethrophes wrote:I've also noticed weird behavior with "declare -gr" the r sometimes seems to override the g, but not specific to functions It seems to be specific either to the source file or to the compound statement. I haven't been able to figure out exactly whats going on there. I haven't been able to reproduce it in a simple example. this is most readily noticeable with set -o nounsetAn example would help. The above is supposed to create a global readonly variable. I suspect that you see the `global' as being `overridden' because it's being created in a subshell environment. Chet
no its not a subshell problem, I avoid subshells as much as possible.also when I expereimented with the problem a couple of times I discovered the following-
declare -g works declare -gr doesn't workmy current workaround is I've just stopped using the readonly attribute which works. or just stopped using declare altogether.
or do something like this var=x typeset -r var I've also seen some strange behavior withdeclare in a conditional sourced global context. it only seems to happen when the code size is 10000s+ lines long. I think this is exasperated by the fact that i source my files inside conditional statements. the result is that I now even in a global context set the global flag.
any ideas what could be causing it would help me try to figure out how to test for it.
Sorry about the weak description but I've been working around it now for months waiting for it to make sense and I'm no closer to figuring out whats going on. the problem is so erratic it has to be some sort of partial lost context or something.
can you give me any tips on how to debug it if I can reproduce it again? is their an easy way to track the validity of a variable?
[Prev in Thread] | Current Thread | [Next in Thread] |