• 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中),任何进程都能访问,任何进程的任何子进程也都可以访问。

      

  • 相关阅读:
    php错误处理和异常处理
    (转)Android内存泄漏分析及调试
    (转)完美解决 Android WebView 文本框获取焦点后自动放大有关问题
    (转)Android studio 使用心得(五)—代码混淆和破解apk
    Execution failed for task ':app:clean'.
    (转)Android短信的发送和接收监听
    Android的AsyncQueryHandler详解
    (转)如何获得当前ListVIew包括下拉的所有数据?
    一个优秀的Android应用从建项目开始
    (转)Android性能优化——工具篇
  • 原文地址:https://www.cnblogs.com/-beyond/p/9250406.html
Copyright © 2020-2023  润新知