使用脚本导出环境变量

时间:2012-02-17 23:00:33

标签: shell environment-variables

我需要在Ubuntu中设置一些环境变量。我做了以下工作:

export PATH="/home/vagrant/ns-allinone-2.35/bin:/home/vagrant/ns-allinone-2.35/tcl8.5.10/unix:/home/vagrant/ns-allinone-2.35/tk8.5.10/unix:$PATH"
export LD_LIBRARY_PATH="/home/vagrant/ns-allinone-2.35/otcl-1.14:/home/vagrant/ns-allinone-2.35/lib"
export TCL_LIBRARY="/home/vagrant/ns-allinone-2.35/tcl8.5.10/library"

但我在脚本envexport.sh中移动相同的东西并执行它,环境变量没有设置。

我哪里错了?如何做到这一点?

感谢。

3 个答案:

答案 0 :(得分:4)

如果您只是运行脚本,则在脚本完成时会破坏环境变量。

使用. envexport.sh。这样命令就会在当前shell(环境)中执行。

答案 1 :(得分:2)

在shell中运行命令时,shell会创建一个子进程(子进程)。在子流程中定义或更改的所有环境变量都将丢失到父流程。

但是,如果您source脚本,则强制脚本在当前进程中运行。这意味着您运行的脚本中的环境变量不会丢失。

答案 2 :(得分:0)

可能有用的一件事是,如果您希望为所有会话设置这些变量,则可以通过运行以下命令并粘贴文件中的行来将相同的命令放在.bashrc文件中。

  

vim~ / .bashrc

和运行

  

source~ / .bashrc

在您目前正在运行的任何终端中。如果您启动任何新终端,他们将自动将您的目录添加到您的路径中。