• Linux 下Shell变量,环境变量的联系与区别


    LinuxShell变量,环境变量的联系与区别

    by:授客 QQ1033553122

    1、  简介

    linux下的变量可分成两种:Shell变量和环境变量。

    Shell变量,又称本地变量,包括私有变量以及用户变量,不同类的shell有不同的私有变量,bash,ksh,csh等,每种shell的私有变量都不一样

     

    环境变量,又称用户变量,与shell无关

     

    常规定义变量的方法:变量名=变量值

    注意:

    1.变量名和=号之间不能有空格,否则shell会把变量名当成命令

    2.变量名称一般使用大写字母

     

    2、  常用的相关命令

    env命令:显示当前用户的环境变量

    set命令:不加参数,显示当前shell所有本地设置的Shell变量,否则设置shell变量

    unset命令:unsetshell内建指令,删除变量或函数。

    exprot命令:显示(设置)当前导出成用户变量的shell变量(注意:exportbash或类bash私有的命令)

    echo $变量名:查看变量值(其中,$变量:引用变量的意思)

     

    3、  示例

    a)   使用env命令显示当前用户的所有环境变量

    [laiyu@localhost ~]$ env

    HOSTNAME=localhost.localdomain

    SHELL=/bin/bash

    TERM=xterm

    HISTSIZE=1000

    USER=laiyu

    LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;...

    MAIL=/var/spool/mail/laiyu

    PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/laiyu/bin

    PWD=/home/laiyu

    LANG=en_US.UTF-8

    ...

    HOME=/home/laiyu

    LOGNAME=laiyu

    ...

    _=/bin/env

     

    b)   使用set命令显示当前shell所有本地Shell变量

    [root@localhost ~]# set | more

    BASH=/bin/bash

    ...

    BASH_CMDS=()

    ...

     

    c)   使用unset命令来清除变量(不管是shell变量还是环境变量)

    [laiyu@localhost ~]$ export TEST=test #增加一个环境变量TEST

    [laiyu@localhost ~]$ env | grep TEST  #查看增加的变量

    TEST=test

    [laiyu@localhost ~]$ unset $TEST #删除环境变量TEST(这里TEST前有无美元符都一样)

    [laiyu@localhost ~]$ env | grep TEST #输出为空

    注意:unset只能删除非只读变量

     

    d)   使用echo命令显示环境变量(HOME变量为例)

    [root@localhost ~]# echo $HOME

    /root

     

    e)   使用export命令将shell变量导出为用户变量,并显示

    列出所有的Shell赋予程序的环境变量

    [root@localhost ~]# export -p #等同export

    ...

    declare -x HOME="/root"

    declare -x HOSTNAME="localhost.localdomain"

    declare -x LANG="en_US.UTF-8"

    declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"

    declare -x LOGNAME="root"

    declare -x PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/bin/:/usr/local/tsung/bin"

    ...

     

    shell变量导出为用户变量

    [root@localhost ~]# SHOUKE=ishouke  #定义shell变量

    [root@localhost ~]# echo $SHOUKE 

    ishouke

    #查看当前用户的用户变量是否存在SHOUKE变量,结果是不存在

    [root@localhost ~]# env | grep SHOUKE

    #查看当前shell的本地变量是否存在SHOUKE变量,结果是不存在

    [root@localhost ~]# set | grep SHOUKE

    SHOUKE=ishouke

    #查看Shell赋予程序的环境变量中是否存在SHOUKE变量,结果不存在

    [root@localhost ~]# export | grep SHOUKE

     

    #导出shell变量为用户变量

    [root@localhost ~]# export SHOUKE

    [root@localhost ~]# env | grep SHOUKE

    SHOUKE=ishouke

    [root@localhost ~]#

    --------------------------------------

    也可以如下方式使用export

    [root@localhost ~]# export SHOUKE=ishouke

    [root@localhost ~]# env | grep SHOUKE

    SHOUKE=ishouke

    [root@localhost ~]#

     

    注意:以上的设置仅在当前打开的shell窗口或或其子shell窗口中起作用,临时的,关闭当前shell窗口或重启机器,则刚才的设置失效,,或打开一个新窗口,设置在新窗口中不起作用。

     

  • 相关阅读:
    ubuntu常用命令
    安装 Ruby, Rails 运行环境 常见的错误
    dubbo user guider笔记之一Preface
    翻译-Your first Dubbo application
    翻译-1.2 容器概述
    翻译-Core Technologies
    翻译-1.1 关于spring ioc容器和bean的介绍
    TCP协议-滑动窗口及拥塞控制
    QUARTZ之三-JobStores相关概念
    项目经验总结
  • 原文地址:https://www.cnblogs.com/shouke/p/10158123.html
Copyright © 2020-2023  润新知