首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >bash函数作用域和变量作用域

bash函数作用域和变量作用域
EN

Stack Overflow用户
提问于 2019-03-01 04:02:12
回答 1查看 49关注 0票数 -2

下面是一组简化的bash命令,它们重现了我在脚本中遇到的问题:

代码语言:javascript
复制
X=9
true && f() { (( x++ )) ; echo hello } ; f

哪一个返回

代码语言:javascript
复制
hello

然后

代码语言:javascript
复制
echo $X

返回

代码语言:javascript
复制
X=9

我期望得到X=10的地方

你能解释一下为什么在函数中不修改全局变量吗?

我知道在subshell中不会修改全局变量,但在本例中并非如此。观察到的行为(变量作用域)似乎与函数在“条件语句”中声明的事实有关: after &&。

EN

回答 1

Stack Overflow用户

发布于 2019-03-01 04:06:19

全局大写x,函数调用小写的x,这是两个不同的变量。

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

https://stackoverflow.com/questions/54933385

复制
相关文章

相似问题

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