全局变量VS环境变量
直接定 export
定义一个变量abc,执行 /bin/bash程序,会在当前shell进程中创建一个shell子进程。此时的shell进程的子进程是不能访问这个变量的;
先用exit命令退出shell子进程,返回到原来的shell进程,此时可以正常被访问。
如果此时要让该变量被shell进程的子进程访问到,就要借用export命令,来把这个全局变量 abc 导出成环境变量,导出后重新执行 /bin/bash程序,创建shell子进程后,再对变量进行访问,此时就可以正常被访问到了。
但是此时在其它的进程中还是不能被访问到的。利用shell进程配置文件可以解决这个问题。
Shell 配置文件
与 Bash Shell 有关的配置文件主要有
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
- ~/.bashrc
- /etc/bashrc
- /etc/bash.bashrc
- /etc/profile.d/.sh
Shell 执行顺序
/etc/profiles-> ~ /.profile(/.bash_profile、~/.bash_login)
修改配置文件
全部用户、全部进程共享:/etc/bash.bashrc
终端进入bash.bashre配置文件
~$ sudo vi /etc/bash.bashrc
在配置文件中添加变量,保存并退出
再次开启一个新线程,可以打印出该变量
**注意**
由于修改的是配置文件,只在开启新线程的时候会执行一次;因此原来添加变量的线程还是无法访问该变量,重新开一个新线程才能正常访问。
一个用户、全部进程共享:~/.bashrc
终端进入~/.bashrc配置文件
~$ sudo vi ~/.bashrc
在配置文件中添加变量,保存并退出
再次开启一个新线程,可以打印出该变量
**注意**
由于修改的是配置文件,只在开启新线程的时候会执行一次;因此原来添加变量的线程还是无法访问该变量,重新开一个新线程才能正常访问。