• 玩转变量与环境变量


     返回主页面

    假设有一个叫做gedit的应用程序正在运行。我们可以使用pgrep命令获得gedit的进程ID:

        $ pgrep gedit
        12501
    
    那么,你就可以通过以下命令获得与该进程相关的环境变量:
    

    $ cat /proc/12501/environ GDM_KEYBOARD_LAYOUT=usGNOME_KEYRING_PID=1560USER=slynuxHOME=/home/slynux

    上面的命令返回一个包含环境变量以及对应变量值的列表。每一个变量以name=value的形 式来描述,彼此之间由null字符()分隔。如果你将替换成 ,那么就可以将输出重新格式 化,使得每一行显示一组“变量=值”。替换可以使用tr命令来实现:

        $ cat /proc/12501/environ  | tr '' '
    '

    var=value var是变量名,value是赋给变量的值。如果value不包含任何空白字符(例如空格),那么

    它就不需要使用引号进行引用,否则必须使用单引号或双引号。
    

    注意,var = value不同于var=value。把var=value写成var = value是一个常见的错误, 但前者是赋值操作,后者则是相等操作。

    #!/bin/bash #文件名:variables.sh

    fruit=apple
    count=5

    echo "We have $count ${fruit}(s)"

     HTTP_PROXY=192.168.1.23:3128
        export HTTP_PROXY
    

    export命令用来设置环境变量。至此之后,从当前shell脚本执行的任何应用程序都会继承 这个变量。我们可以按照自己的需要,在执行的应用程序或者shell脚本中导出特定的变量。在默 认情况下,有很多标准环境变量可供shell使用。

    PATH就是其中之一。通常,变量PATH包含:

    $ echo $PATH /home/slynux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /games

    在给出所要执行的命令后,shell会自动在PATH环境变量所包含的目录列表中(各目录路径之 间以冒号分隔)查找对应的可执行文件。PATH通常定义在/etc/environment/etc/profile~/.bashrc 中。如果需要在PATH中添加一条新路径,可以使用:

        export PATH="$PATH:/home/user/bin"
    

    也可以使用

        $ PATH="$PATH:/home/user/bin"
        $ export PATH
    

    $ echo $PATH /home/slynux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /games:/home/user/bin

    这样,我们就将/home/user/bin添加到了PATH中。

    $(#变量) 获取变量的内容的长度

    echo $SHELL获知当前使用的是哪种shell:

    UID是一个重要的环境变量,可以用于检查当前脚本是以超级用户还是以普通用户的身份运 行的

    If [ $UID -ne 0 ]; then
            echo Non root user. Please run as root.
    
        else
            echo Root user
    

    fi

    root用户的UID0

    -eq 等于,如:if ["$a" -eq "$b" ]
    -ne 不等于,如:if ["$a" -ne "$b" ]
    -gt 大于,如:if ["$a" -gt "$b" ]
    -ge 大于等于,如:if ["$a" -ge "$b" ]
    -lt 小于,如:if ["$a" -lt "$b" ]
    -le 小于等于,如:if ["$a" -le "$b" ]
    < 小于(需要双括号),如:(("$a" < "$b"))
    <= 小于等于(需要双括号),如:(("$a" <= "$b"))
    > 大于(需要双括号),如:(("$a" > "$b"))
    >= 大于等于(需要双括号),如:(("$a" >= "$b"))

    另外:$?是shell变量,表示"最后一次执行命令"的退出状态.0为成功,非0为失败.


  • 相关阅读:
    如何理解C语言的左结合 和右结合性
    Egg项目使用vscode的debug模式跑单元测试
    为什么要用MongoDB副本集
    理解JS原型和原型链
    防止重复请求攻击
    引擎、编译器和作用域
    闭包原理解析及其应用场景
    树形结构数据完美解决方案
    Excel文件导入导出(基于Nodejs、exceljs)
    架构层面高并发解决方案选择----项目架构模式选择
  • 原文地址:https://www.cnblogs.com/tianzhiyun/p/9465233.html
Copyright © 2020-2023  润新知