shell问题:shell使用的是动态作用域规则还是静态作用域规则(即词法作用域规则)?
问Chatgpt一会说静态一会说动态。
根据我下面写的这段代码和结果来看,应该是使用的动态作用域规则。
输出结果为10,如果是静态作用域规则,应该是11。
a=11
function f2(){
echo "call function f2"
echo "a : " $a
}
function f1() {
echo "call function f1";
local a=10
f2
}
f1
以实际为准,运行程序就知道结果了,就是静态作用域规则。
ChatGPT一会说静态一会说动态,估计是被你问得怀疑它自己了。
[root@localhost ~]# 12A=hello
bash: 12A=hello: 未找到命令...
[root@localhost ~]# A12=hello
[root@localhost ~]# echo $A12
hello