"bash -c" 不从源脚本中导出变量

"bash -c" doesn't export vars from sourced scripts

我有一个包含文件test.inc:

export XXX=xxx

我在调用 bash 解释字符串时使用它:

bash -c ". test.inc; echo $XXX"

但是在回显命令的时候没有设置变量。如果我这样做 'export' 我可以看到它:

bash -c ". test.inc; export"

演出

declare -x XXX="XXX"

当我使用 bash -c 语法时,如何让我的第一个命令看到源文件中导出的变量?

您使用了双引号。因此,您当前的 shell 在 bash -c 实例看到它之前很久就扩展了 $XXX。切换到单引号,或转义美元符号。