• shell-的变量-全局变量


    shell变量基础及深入
      1. 变量类型
      变量可分为两类:环境变量(全局变量)和局部变量。
      环境变量也可称为全局变量,可以在创建他们的shell及其派生出来的任意子进程shell中使用。局部变量只能在创建他们的shell函数或脚本中使用。还有一些变量是用户创建的其它的则是专用shell变量。
      2. 环境变量
      环境变量用于定义shell的运行环境,保证shell命令的正确执行,shell通过环境变量来确定登陆用户名、命令路径、终端类型、登陆目录等,所有的环境变量都是系统全局变量,可用于所有子进程中,这包括编辑器、shell脚本和各类应用。
      环境变量可以在命令行中设置,但用户退出时这些变量值也会丢失,因此最好在用户家目录下的.bash_profile文件中或全局配置/etc/profile文件或者/etc/profile.d/中定义。将环境变量放入profile文件中,每次用户登录时这些变量值都将被初始化。
      传统上,所有环境变量均为大写。环境变量应用于用户进程前,必须用export命令导出
      环境变量可用在创建他们的shell和从该shell派生的任意子shell或进程中。他们通常被称为全局变量以区别局部变量。通常,环境变量应该大写。环境变量是已经用export内置命令导出的变量。
      有一些环境变量,比如HOME、PATH、SHELL、UID、USER等,在用户登录之前就已经被/bin/login程序设置好了,通常环境变量定义并保存在用户家目录下.bash_profile文件中。具体的环境变量说明请参考下表:bash环境变量

      3. 自定义环境变量(全局变量)
      设置环境变量
      如果想设置环境变量,就要在给变量赋值之后或设置变量时使用export命令,带-x选项的declare内置命令也可完成同样的功能。(注意:输出变量时不要在变量名前面加$)
      表 export命令和选项

       格式:

    export    变量名=value
    变量名=value;export   变量名
    declare -x  变量名=value
    提示:以上为三种设置环境变量的方法
    例:
    export NAME=oldboy
    declare  -x  
    

      自定义环境变量生产环境java环境配置实例:

    export JAVA_HOME=/opt/jdk
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
    export TOMCAT_HOME=/opt/tomcat
    export  PATH=$PATH:$TOMCAT_HOME/bin
    放在:/etc/profile  或者 /etc/profile.d/下
    

      4. 显示与取消环境变量

    •  通过echo命令打印环境变量
    $HOME      #用户登录时进入的目录
    $UID         #当前用户的UID(用户标识)相当于id -u
    $PWD        #当前工作目录的绝对路径名
    $SHELL     #当前SHELL
    其他省略若干  
    • 例子
    [root@yanwei-test1 scripts]# echo $HOME
    /root
    [root@yanwei-test1 scripts]# echo $UID
    0
    [root@yanwei-test1 scripts]# echo $PWD
    /server/scripts
    [root@yanwei-test1 scripts]# echo $SHELL
    /bin/bash
    [root@yanwei-test1 scripts]# echo $USER
    root
    提示:在写shell脚本时可以直接使用上面的系统默认的环境变量
    
    • 用env(printenv)或set显示默认的环境变量
    [root@yanwei-test1 scripts]# env
    TOMCAT_HOME=/opt/tomcat_8081
    XDG_SESSION_ID=1277
    HOSTNAME=yanwei-test1
    TERM=xterm
    SHELL=/bin/bash
    HISTSIZE=1000
    SSH_CLIENT=192.168.0.157 49318 22
    SSH_TTY=/dev/pts/0
    USER=root
    LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
    MAVEN_HOME=/opt/maven
    MAIL=/var/spool/mail/root
    PATH=/opt/maven/bin:/usr/local/mysql/bin:/opt/jdk/bin:/opt/jdk/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/tomcat/bin:/opt/tomcat_8081/bin:/root/bin
    PWD=/server/scripts
    JAVA_HOME=/opt/jdk
    LANG=zh_CN.UTF-8
    HISTCONTROL=ignoredups
    SHLVL=1
    HOME=/root
    LOGNAME=root
    CLASSPATH=.:/opt/jdk/lib:/opt/jdk/jre/lib:/opt/jdk/lib/tools.jar
    SSH_CONNECTION=192.168.0.157 49318 192.168.0.235 22
    LESSOPEN=||/usr/bin/lesspipe.sh %s
    XDG_RUNTIME_DIR=/run/user/0
    HISTTIMEFORMAT=%F %T root
    _=/usr/bin/env
    OLDPWD=/root
    提示:1.用set显示所有本地变量
       2.我们也可以自定义全局环境变量,
    
    • 用unset取消本地变量和环境变量

      例子: 

    [root@yanwei-test1 scripts]# export aa=ll
    [root@yanwei-test1 scripts]# echo $aa
    ll
    [root@yanwei-test1 scripts]# unset aa
    [root@yanwei-test1 scripts]# echo $aa
                                                  #此处为输出的空行了
  • 相关阅读:
    iOS:hidesBottomBarWhenPushed的正确用法
    清理缓存
    iOS常见问题(2)
    iOS常见问题(1)
    Xcode文档下载与安装路径
    文本属性Attributes
    NSAttributedString
    protocol
    类的本质、description方法、SEL、NSLog输出增强
    分类-Category
  • 原文地址:https://www.cnblogs.com/scajy/p/12762144.html
Copyright © 2020-2023  润新知