环境变量通常又称“全局变量”。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 ~]#
。