我需要在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
中移动相同的东西并执行它,环境变量没有设置。
我哪里错了?如何做到这一点?
感谢。
答案 0 :(得分:4)
如果您只是运行脚本,则在脚本完成时会破坏环境变量。
使用. envexport.sh
。这样命令就会在当前shell(环境)中执行。
答案 1 :(得分:2)
在shell中运行命令时,shell会创建一个子进程(子进程)。在子流程中定义或更改的所有环境变量都将丢失到父流程。
但是,如果您source
脚本,则强制脚本在当前进程中运行。这意味着您运行的脚本中的环境变量不会丢失。
答案 2 :(得分:0)
可能有用的一件事是,如果您希望为所有会话设置这些变量,则可以通过运行以下命令并粘贴文件中的行来将相同的命令放在.bashrc文件中。
vim~ / .bashrc
和运行
source~ / .bashrc
在您目前正在运行的任何终端中。如果您启动任何新终端,他们将自动将您的目录添加到您的路径中。