在Bash中,如何在模块的函数中修改全局变量?

时间:2015-03-11 09:39:35

标签: linux bash

我的脚本中有一个全局变量:

export _ERR
. library.sh #import my functions

在library.sh中, 我想在功能A中设置它:

function_a () 
{
  [[ -f /mnt/file.txt ]] && {
    _ERR="Error file does not exist"
  }
}

后来在主脚本中调用函数A

output=$(functionA)

如果$ ERR不为空,则显示$_ERR

[[ -n _ERR ]] && echo ${_ERR}

但是_ERR在我的主脚本中总是空的。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

通过使用命令替换捕获输出,可以在子shell中运行该函数。子shell无法更改父shell中的变量值。