关于.bash配置文件:获取文件并一次性添加“export”前缀

Source a file and add “export ” prefix in one go

我有两个用于环境配置的配置文件,其内容如下:

1
2
3
4
5
# First comment
hello='john'

# Second comment
test=3

即注释,名称=值对和空格的组合

目前我有一个重装脚本,它将其值替换并复制到.bash_profile:

1
2
cat env.file1 | sed -e 's/#.*$//' -e '/^$/d' -e 's/^/export\ /' >> .bash_profile
cat env.file2 | sed -e 's/#.*$//' -e '/^$/d' -e 's/^/export\ /' >> .bash_profile

我宁愿选择.bash_profile来代替"源"这两个文件,不知何故在这个过程中执行转换。 这样它只需要一个命令(源.bash_profile)而不是两个(env-reload&& .bash_profile)。 这也意味着bash_profile可以保持不受干扰。

这该怎么做?


这里回答了这个问题:从文件中设置环境变量

第二个答案是我将使用的方法。

1
export `sed -e '/^\#/d' -e '/^$/d' env.file1 | xargs`

这适用于一个文件,但不止一个,如你的问题? 我可以提交这个:

1
for ENV_FILE in env.*; do export `sed -e '/^\#/d' -e '/^$/d'"$ENV_FILE"; done

如果你只想更新这些变量,而不重新加载bash,我建议为它做一个别名。 然后,只需键入别名的名称,并随时重新加载它们。

希望这可以帮助。