下面是一组简化的bash命令,它们重现了我在脚本中遇到的问题:
X=9
true && f() { (( x++ )) ; echo hello } ; f
哪一个返回
hello
然后
echo $X
返回
X=9
我期望得到X=10的地方
你能解释一下为什么在函数中不修改全局变量吗?
我知道在subshell中不会修改全局变量,但在本例中并非如此。观察到的行为(变量作用域)似乎与函数在“条件语句”中声明的事实有关: after &&。
发布于 2019-03-01 04:06:19
全局大写x,函数调用小写的x,这是两个不同的变量。
https://stackoverflow.com/questions/54933385
复制相似问题