看起来pdksh和mksh有我期望的作用域实现。
例如:
readonly x='global'
f() {
local x
readonly x='f'
echo $x
}
g() {
local x
readonly x='g'
echo $x
}
echo $x
f
g
echo $xpdksh和mksh产生了我预期的结果:
global
f
g
global而Bash失败了:
line 5: local: x: readonly variableDash和Ksh93也没有达到我的预期。(在Ksh93的测试中,我已经将local更改为typeset。)
这似乎令人困惑。
更新:我已经编辑了这个问题。前面的问题陈述得并不清楚。
发布于 2011-02-16 01:45:54
如果全局变量不是只读的,Bash和Dash不会失败。
只有当x的实例都不是只读的时,Korn (ksh93)才不会失败。
https://stackoverflow.com/questions/5005903
复制相似问题