避免使用“source”来设置环境?

时间:2012-11-11 16:12:20

标签: bash shell

我正在尝试编写一个脚本,允许我在我的环境中设置一堆环境变量。 我以前做的是:

source ./script

但是现在我希望我的脚本在PATH变量中,所以我可以从我想要的任何地方调用它。

但是这样称呼它:

script

将打开一个新shell并在新shell中设置变量,一旦脚本执行完毕,我就会丢失所有内容。

所以我想知道如何做到这一点。

2 个答案:

答案 0 :(得分:4)

也许你应该使用alias

假设您的环境变量位于文件/path/to/stuff/my_env中,只需添加别名

即可
alias my_env="source /path/to/stuff/my_env"

然后你只需发出my_env就可以了!

除非你的脚本启动一个新的bash命令,否则无法在脚本中完成你想要实现的目标,但这有点尴尬!

答案 1 :(得分:2)

您可以创建一个源脚本的函数:

do_it () {
  source /your/script
}

将其放入.bashrc,您可以发出

do_it