繁体   English   中英

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

[英]In Bash, how can I modify a global variable in a function of a module?

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

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在我的主脚本中始终为空。

我究竟做错了什么?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM