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,我建议为它做一个别名。 然后,只需键入别名的名称,并随时重新加载它们。
希望这可以帮助。