Dis*_*ame 6 bash environment-variables
假设我有一个名为variables.sh设置两个变量的文件。
foo=bar
bar=foo
Run Code Online (Sandbox Code Playgroud)
如果我使用source这个文件,我可以在当前 shell 中使用这些变量,但是如果我想在第二个 shell 脚本中使用它,我将不得不导出它们,因此文件必须如下所示:
export foo=bar
export bar=foo
Run Code Online (Sandbox Code Playgroud)
可以做某种source+export还是我必须更改variables.sh以便export在设置每个变量之前都有?
Áng*_*gel 10
如果我想在第二个 shell 脚本中使用它,我将不得不导出它们,因此文件必须如下所示:
你可以获取第二个文件,或者让它 source variables.sh。有多种方法可以做你想做的事情,比如对处理文件的结果做一个 eval,但最干净的方法是使用set -abash shell:
-a Automatically mark variables and functions which are
modified or created for export to the environment of
subsequent commands.
Run Code Online (Sandbox Code Playgroud)
因此,您可以通过以下方式实现您的目标:
-a Automatically mark variables and functions which are
modified or created for export to the environment of
subsequent commands.
Run Code Online (Sandbox Code Playgroud)
正如l0b0所指出的,您可能希望set +a之后这样做,因此您不会继续在后续的 shell 代码中自动导出变量。
| 归档时间: |
|
| 查看次数: |
272 次 |
| 最近记录: |