2012-02-17 157 views
0

我需要在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同样的事情,执行它,环境变量没有得到设置。

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

谢谢。

回答

4

如果您只是运行该脚本,脚本完成时会损坏环境变量。使用. envexport.sh。这样,命令在当前shell(环境)中执行。

2

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

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

0

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

的vim的〜/ .bashrc

和运行

源的〜/ .bashrc

在您当前正在运行的任何终端

。如果你启动了任何新的终端,他们会自动将你的目录添加到你的路径中。