【发布时间】:2015-12-22 01:32:26
【问题描述】:
如果我想将环境变量继承给子进程,我会这样做:
export MYVAR=tork
假设我有一个文件site.conf,其中包含对变量的赋值(可以包含空格):
EMAIL="dev@example.com"
FULLNAME="Master Yedi"
FOO=bar
现在我想在我打开一个新的 shell 时处理这个文件(例如,在~/.bashrc 或~/.profile 中使用一些代码),以便从新打开的 shell 中启动的任何进程都将通过环境变量继承分配.
显而易见的解决方案是在site.conf 中的每一行前加上export 前缀,然后直接获取文件。但是我不能这样做,因为文件也被其他一些应用程序(直接)读取,所以格式是固定的。
我尝试了类似的东西
cat site.conf | while read assignment
do
export "${assignment}"
done
但这不起作用,出于各种原因(最重要的是export 在子shell 中执行,因此变量永远不会导出到调用shell 的子代)。
有没有办法在 bash 中以编程方式 export 未知变量?
【问题讨论】:
标签: bash shell environment-variables export