假设我有一个名为 的文件variables.sh
,它设置两个变量。
foo=bar
bar=foo
如果我source
这个文件,我可以在当前 shell 中使用这些变量,但如果我想在第二个 shell 脚本中使用它,我将不得不导出它们,因此文件必须如下所示:
export foo=bar
export bar=foo
可以做某种source
+export
或者我是否必须进行更改,以便在设置每个变量之前variables.sh
有 + ?export
答案1
如果我想在第二个 shell 脚本中使用它,我必须导出它们,因此文件必须如下所示:
您可以获取第二个文件,或者将其获取variables.sh
.有多种方法可以完成您的任务,例如对处理文件的结果进行评估,但最干净的方法是使用set -a
bash shell:
-a Automatically mark variables and functions which are
modified or created for export to the environment of
subsequent commands.
因此,您可以通过以下方式实现您的目标:
set -a
source variables.sh
正如所指出的l0b0,您可能希望set +a
之后这样做,这样您就不会继续在后续 shell 代码中自动导出变量。