环境变量通常又称“全局变量”。shell脚本声明变量,只能在本脚本中使用。为了让子Shell继承当前Shell的变量,则可以使用export内建命令将其导出为环境变量。

使用方法如下:

export VAR=value

环境变量可用在创建变量的Shell和从该Shell派生的任意子Shell或进程中(使用export内建命令将变量导出为环境变量),因此,环境变量通常又被称作全局变量。

内置环境变量

  • BASH Bash Shell的全路径。

  • BASH_VERSION Bash Shell的版本。

  • EUID 记录当前用户的UID。当前的用户是root,所以该值应该为0。

  • FUNCNAME 在用户函数体内部,记录当前函数体的函数名。

      f(){
          echo $FUNCNAME;
      }
    
      f
      # 结果:f
  • HISTCMD 记录下一条命令在history命令中的编号。

    可以输入 !编号 执行历史命令

  • HISTFILE 记录history命令记录文件的位置。

  • HISTFILESIZE 设置HISTFILE文件记录命令的行数。

  • HISTSIZE 事实上Linux并不会每次运行一个命令后立即将该命令记录到HISTFILE文件中,读者可以试着在当前的Shell中多运行几次命令,然后用cat/root/.bash_history命令查看。原因是Shell采用了“命令缓冲区”来记录所有已运行过的命令,在缓冲区满或退出Shell时才将缓冲区的记录写到HISTFILE文件中。缓冲区的大小使用HISTSIZE定义。

  • HOSTNAME 展示主机名。

  • HOSTTYPE 展示主机的架构,是i386、i686,还是x86_64等。

  • MACHTYPE 主机类型的GNU标识,这种标识有统一的结构。一般来说是“主机架构-公司-系统-gnu”

  • LANG 设置当前系统的语言环境,其实就是language的意思。

  • PWD 记录当前目录。

  • OLDPWD 记录之前目录。

  • PATH 代表命令的搜索路径,非常重要。

  • PS1 命令提示符,默认值是[\u@\h \W]\$,其中\u是用户名、\h是主机名、\W是当前工作目录的basename、\$是用户UID的替换字符:如果UID是0则替换成#,否则替换成“$”,所以此处具体显示出来就是[root@localhost ~]#