我有这样的代码:
#!/usr/bin/env bash
test_this(){
export ABC="ABC"
echo "some output"
}
final_output="the otput is $(test_this)"
echo "$ABC"
Run Code Online (Sandbox Code Playgroud)
不幸的是,变量ABC没有被设置.
我必须这样调用test_this,因为在我的真实程序中我给它一些参数,它执行各种复杂的操作调用各种其他函数,这些函数导出这个或那个(基于这些参数),最后一些输出字符串被组装以返回.调用它两次,一次获取导出,一次输出字符串就不好了.
问题是:我可以做什么来使输出和输出字符串到位,但只需要调用一个这样的函数?
我很满意的答案(谢谢你paxdiablo):
#!/usr/bin/env bash
test_this(){
export ABC="ABC"
export A_VERY_OBSCURE_NAME="some output"
}
test_this
final_output="the otput is $A_VERY_OBSCURE_NAME"
echo "$ABC" #works!
unset A_VERY_OBSCURE_NAME
Run Code Online (Sandbox Code Playgroud)