标签:空格 查看 分享 结束 命令行界面 alt com 执行 bashrc
Linux中的环境变量有两种:全局变量和局部变量;
全局变量就是所有进程共享的,无论创建多少个shell子进程(或者打开多少个命令行窗口窗口),他们都可以访问的变量可以称之为全局变量。
局部变量就是作用范围只限于当前的shell进程和当前shell进程的子进程,其他的情况都不能访问该进程的局部变量。
可以使用printenv或者env命令来打印所有的全局变量。
访问某一项全局变量,可以使用printenv key,或者echo $key
上面的这些全局变量,无论是本次打开的命令行界面中(其实就是当前进程),还是另外在打开一个命令行界面,这些值都可以使用相同的命令访问,并且值都是一样的,这样的变量叫全局变量。
注意设置全局变量之后,要使用export将其导入到全局变量,否则会被认为是一个局部变量。
此时,如果在打开另外一个命令行窗口,即另外一个进程,那么是访问不到定义的全局变量MYGLOBALVAR。该全局变量会在定义该变量的进程结束后销毁。
要想让自己定义的全局变量让所有的命令行窗口共享,可以将声明全局变量的命令写在$HOME/.bashrc里面,并且之后执行. .bashrc或者source .bashrc命令让脚本执行一下。
比如:注意最后一行
至于为什么要写在这个文件中,可以自行百度一下shell终端加载配置文件的顺序。
1、无论是定义局部变量还是全局变量,格式都是相同的,key=value,等号两边没有空格
2、访问局部变量和全局变量的都一项都可以使用echo $key。
3、全局变量和局部变量都可以使用unset来删除,需要注意的是,此时变量名不要加$。
4、只有在访问变量的值的时候,才在变量名前加$,其他情况,比如赋值、删除、导出都不加$。有一个除外,printenv访问全局变量不要$。
5、全局变量比局部变量多了一个export命令,不进行export,始终是局部变量。
6、全局变量如果不写在.bashrc中,那么生命周期只限于当前进程结束前有效。
局部变量的作用范围只限于当前进程。当前进程的子进程不能访问父进程中定义的局部变量。
全局变量的作用范围是当前进程,以及当前进程的后代进程(子进程,子进程的子进程...)
全局变量持久化操作后(声明在.bashrc中),任何进程都能访问,任何进程的任何子进程也都可以访问。
标签:空格 查看 分享 结束 命令行界面 alt com 执行 bashrc
原文地址:https://www.cnblogs.com/-beyond/p/9250406.html