如何从 bash 读取 /etc/environment 中声明的环境变量?

如何从 bash 读取 /etc/environment 中声明的环境变量?

我如何或者访问TRAVERSE下面的环境变量?

nicholas@gondor:~$ 
nicholas@gondor:~$ printenv | grep PATH
WINDOWPATH=2
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
nicholas@gondor:~$ 
nicholas@gondor:~$ printenv | grep TRAVERSE
nicholas@gondor:~$ 
nicholas@gondor:~$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"



TRAVERSE="/home/nicholas/some_directory"
nicholas@gondor:~$ 

我运行source ~/.bashrc后没有结果。我期望如果我重新启动,该变量将是可读的,但这似乎太过分了。

也可以看看:

https://stackoverflow.com/q/39296472/4531180

答案1

如果你使用 bash shell

. /etc/environment

如果没有点,脚本文件中定义的变量就不会传递到当前的 shell。

例如:

$ cat b.sh
TRAVERSE="Another SomeThing"
$ echo $TRAVERSE

$ ./b.sh
$ echo $TRAVERSE

$ . ./b.sh
$ echo $TRAVERSE
Another SomeThing
$ 

相关内容