小编rob*_*ert的帖子

导出不起作用(来自一个被称为获取其回声的函数)

我有这样的代码:

#!/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)

bash export function echo

9
推荐指数
1
解决办法
8075
查看次数

标签 统计

bash ×1

echo ×1

export ×1

function ×1