导出PATH不在linux上的bash shell中工作

Yet*_*ene 3 linux bash shell

例如,我输入以下命令:

         # PATH=$PATH:/var/test
         # echo $PATH
           ........./var/test       // working
         # export PATH
Run Code Online (Sandbox Code Playgroud)

接下来,我打开另一个bash shell会话,通过键入以下命令来测试导出是否有效:

         # echo $PATH
          ........      // not working as in I don't see /var/test path
Run Code Online (Sandbox Code Playgroud)

rit*_*t93 6

您PATH只为当前bash会话设置了环境变量.您需要将行添加PATH=$PATH:/var/test到~/.bashrc,这样它可以用于任何bash外壳.

只需运行以下命令将其放入rc(运行命令)文件(rc文件包含命令的启动信息(初始化)):
echo "PATH=$PATH:/var/test" >> ~/.bashrc

更多信息:https://en.wikipedia.org/wiki/Run_commands
https://superuser.com/questions/789448/choosing-between-bashrc-profile-bash-profile-etc

export变量使它仅在从该bash shell中spwaned/started的子进程中可用.
举个例子:

$ export var=abcd
$ sh
$ echo "$var"
abcd
$ exit
$ echo "$var"
abcd
$
Run Code Online (Sandbox Code Playgroud)

sh是因为bash它获得了价值的子进程var,因为你打开一个新的bash,它是一个完全不同的进程,它确实获得了PATH价值.