bash在同一行中访问本地和全局变量

bash在同一行中访问本地和全局变量,bash,shell,Bash,Shell,我正在尝试将多个具有相同名称的局部和全局变量组合在一起。有没有比在创建局部变量之前以不同的名称存储全局变量更好的解决方案 #!/bin/bash #glocal a=10 foo () { #local local a=2 echo $(($a*$a)) #should be local * global } cat << _EOF_ $(foo) $a _EOF_ #/bin/bash #全球的 a=10 foo(){ #本地的 局部a=2 e

我正在尝试将多个具有相同名称的局部和全局变量组合在一起。有没有比在创建局部变量之前以不同的名称存储全局变量更好的解决方案

#!/bin/bash

#glocal
a=10

foo () {
    #local
    local a=2   
    echo $(($a*$a)) #should be local * global
}

cat << _EOF_
$(foo)
$a
_EOF_
#/bin/bash
#全球的
a=10
foo(){
#本地的
局部a=2
echo$($a*$a))#应为本地*全局
}

cat是的,有一个比“在创建本地文件之前以不同的名称存储全局文件”更好的解决方案。更好的解决方案是为本地人使用不冲突的名称


没有允许以这种方式消除歧义的语法功能。

是的,有一个比“在创建本地之前以不同的名称存储全局”更好的解决方案。更好的解决方案是为本地人使用不冲突的名称


没有允许以这种方式消除歧义的语法功能。

请使用其他名称
bash
没有任何类型的作用域运算符可以让您编写类似于C++的东西,如
echo$($a*$::a))
。据我回忆,可以这样做的语言非常少。请使用不同的名称
bash
没有任何类型的作用域操作符,可以让您编写类似于C++的东西,比如
echo$($a*$::a))
。据我回忆,可以这样做的语言非常少。