本文共 732 字,大约阅读时间需要 2 分钟。
最近在~/.bashrc中设置了环境变量(export x=yyy), 对于新打开的shell, 环境变量不生效,颇为纳闷。 其实, 这里涉及到~/.bashrc的生效逻辑:
1. 直接登录,也就是login shell, 环境变量不生效, 执行bash, 进入non-login shell, 环境变量生效
2. 直接登录,也就是login shell, 环境变量不生效, 用source ~/.bashrc则环境变量生效
在mac和ubuntu中均进行了测试,ubuntu结果如下:
ubuntu@VM-0-15-ubuntu:~$ echo $xubuntu@VM-0-15-ubuntu:~$ bash ubuntu@VM-0-15-ubuntu:~$ echo $xyyyubuntu@VM-0-15-ubuntu:~$ exitexitubuntu@VM-0-15-ubuntu:~$ echo $xubuntu@VM-0-15-ubuntu:~$ source ~/.bashrc ubuntu@VM-0-15-ubuntu:~$ echo $xyyyubuntu@VM-0-15-ubuntu:~$
login shell居然不生效, 太鸡肋了, 还是放在~/.bash_profile中吧(export y=zzz), 无论是login shell还是非login shell, 都生效:
ubuntu@VM-0-15-ubuntu:~$ echo $yzzzubuntu@VM-0-15-ubuntu:~$ bashubuntu@VM-0-15-ubuntu:~$ echo $yzzzubuntu@VM-0-15-ubuntu:~$
不多说。
转载地址:http://nizti.baihongyu.com/