我的脚本中有一个全局变量:
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在我的主脚本中总是空的。
我做错了什么?
答案 0 :(得分:1)
通过使用命令替换捕获输出,可以在子shell中运行该函数。子shell无法更改父shell中的变量值。