首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同shell语言中的作用域问题?

不同shell语言中的作用域问题?
EN

Stack Overflow用户
提问于 2011-02-15 23:51:03
回答 1查看 143关注 0票数 1

看起来pdksh和mksh有我期望的作用域实现。

例如:

代码语言:javascript
复制
readonly x='global'

f() {
  local x
  readonly x='f'
  echo $x
}

g() {
  local x
  readonly x='g'
  echo $x
}

echo $x

f 
g

echo $x

pdksh和mksh产生了我预期的结果:

代码语言:javascript
复制
global
f
g
global

而Bash失败了:

代码语言:javascript
复制
line 5: local: x: readonly variable

Dash和Ksh93也没有达到我的预期。(在Ksh93的测试中,我已经将local更改为typeset。)

这似乎令人困惑。

更新:我已经编辑了这个问题。前面的问题陈述得并不清楚。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-16 01:45:54

如果全局变量不是只读的,Bash和Dash不会失败。

只有当x的实例都不是只读的时,Korn (ksh93)才不会失败。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5005903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档