即使不是本地变量,也无法访问函数外部的变量

即使不是本地变量,也无法访问函数外部的变量

我有简单的 bash 脚本。我的 bash 版本是GNU bash, version 4.4.20(1)-release (x86_64-redhat-linux-gnu)

#!/bin/bash
  
func() {
    nlvar="i'm not local variable"
    local lvar="i'm local variable"
}
echo $nlvar
echo $lvar

如果我使用

eval nlvar="i'm not local variable"

或者

export nlvar="i'm not local variable"

仍然没有任何回声

答案1

如果您不调用该函数,则除了全局(未定义)范围外,没有任何范围:

#!/bin/bash
  
func() { :; }    # define a function

echo $nlvar
echo $lvar

定义函数并不执行它,因此在执行语句时,echo两个变量都没有被设置

相关内容