zoukankan      html  css  js  c++  java
  • Linux 环境变量梳理

      Linux中的环境变量有两种:全局变量和局部变量;

    定义、访问、删除局部变量

      

    查看全局变量

      可以使用printenv或者env命令来打印所有的全局变量。

      

      访问某一项全局变量,可以使用printenv key,或者echo $key

      

      上面的这些全局变量,无论是本次打开的命令行界面中(其实就是当前进程),还是另外在打开一个命令行界面,这些值都可以使用相同的命令访问,并且值都是一样的,这样的变量叫全局变量。

    设置全局变量

      

      注意设置全局变量之后,要使用export将其导入到全局变量,否则会被认为是一个局部变量。

      此时,如果在打开另外一个命令行窗口,即另外一个进程,那么是访问不到定义的全局变量MYGLOBALVAR。该全局变量会在定义该变量的进程结束后销毁。

      要想让自己定义的全局变量让所有的命令行窗口共享,可以将声明全局变量的命令写在$HOME/.bashrc里面。

      比如:注意最后一行

      

      至于为什么要写在这个文件中,可以自行百度一下shell终端加载配置文件的顺序。

      之后执行. .bashrc或者source .bashrc命令让配置生效,之后打开的命令行窗口(进程)就可以访问到该全局变量,但是之前打开的窗口(在定义全局变量之前就开始的进程),不能访问到现在定义的全局变量。

      

    注意点

      1、无论是定义局部变量还是全局变量,格式都是相同的,key=value,等号两边没有空格

      2、访问局部变量和全局变量的都一项都可以使用echo $key。

      3、全局变量和局部变量都可以使用unset来删除,需要注意的是,此时变量名不要加$。

      4、只有在访问变量的值的时候,才在变量名前加$,其他情况,比如赋值、删除、导出都不加$。有一个除外,printenv访问全局变量不要$。

      5、全局变量比局部变量多了一个export命令,不进行export,始终是局部变量。

      6、全局变量如果不写在.bashrc中,那么生命周期只限于当前进程结束前有效。

    易错点(变量的作用范围)

      局部变量的作用范围只限于当前进程。当前进程的子进程不能访问父进程中定义的局部变量。

      

       

      全局变量的作用范围是当前进程,以及当前进程的后代进程(子进程,子进程的子进程...)

      

      

      全局变量持久化操作后(声明在.bashrc中),任何进程都能访问,任何进程的任何子进程也都可以访问。

      

  • 相关阅读:
    springMVC后端返回数据到前端
    spring MVC配置
    SSM框架中配置静态资源加载
    js实践问题收集日记
    页面HTml学习笔记
    js页面传值实践
    struts2中jsp页面与action之间的传值
    json与Java对象的转换
    JDBC的简单应用
    新的开始,重新启用博客园
  • 原文地址:https://www.cnblogs.com/-beyond/p/9250406.html
Copyright © 2011-2022 走看看