首页 > 解决方案 > 无法按我的预期设置 linux 环境变量

问题描述

我打开两个终端。在第一个终端:

export CLASSPATH="abc"
printenv CLASSPATH   ---> output is abc

然后在第二个终端:

printenv CLASSPATH   ---> no output 

为什么在第二个终端我没有变量?

标签: linuxshellterminalenvironment-variables

解决方案


这是行不通的,因为每个程序都继承了环境,即环境变量列表及其父进程的值。环境不会自动传播到系统上的所有其他程序,而只会由给定程序的子程序继承。要设置适用于所有新打开的终端的全局环境,您需要在每次打开终端时获取的文件中设置它。那将是什么文件取决于您使用的外壳和系统本地设置。例如,如果您使用 bash,则应放入export CLASSPATH="abc"~/.bashrc。


推荐阅读