bash中的变量

局部变量与环境变量

在bash中,变量是一个用来存储数据的实体。每个变量都有一个名称和一个值,名称是变量的标识符,值是变量的数据。

举个例子,终端的类型被存储在变量TERM中,使用echo命令查看TERM的值:

$ echo $TERM
xterm

也可以使用{}将变量名括起来:

$ echo ${TERM}
xterm

在使用echo查看变量中的数据时,需要在变量名前加$号,如果没有加,则echo认为其是一个字符串:

$ echo TERM
TERM

echo命令中,变量被双引号" "括起来,会显示变量的数据;如果被单引号' '括起来,会将变量名显示为字符串:

$ echo "I am using ${TERM}."
I am using xterm.
$ echo 'I am using ${TERM}.'
I am using ${TERM}.

在bash中,变量分为环境变量(全局变量)和局部变量。

环境变量可以被子进程读取和修改,父进程对环境变量的修改会传递到子进程,而子进程对变量的修改不会传递到父进程。

局部变量只能在本进程中被读取和修改。

设置变量

使用变量名=值的格式来为变量赋值,需要注意的是=左右没有空格:

$ zhang=22
$ echo $zhang
22
$ zhang=55
$ echo $zhang
55

使用unset命令删除变量:

$ echo $zhang
55
$ unset zhang
$ echo $zhang

$

环境变量

在交互式bash中,还是使用环境变量多一些。

bash有一些默认的环境变量,使用env查看:

$ env
XDG_SESSION_ID=39513
TERM=xterm
SHELL=/bin/bash


# 省略

在bash中,环境变量的变量名一般全部采用大写字母。

bash中有一些默认的环境变量,比如HOSTNAME的值为计算机名称,HOME的值为用户的家目录,LOGNAME的值为当前的用户表示,PATH的值为搜索程序的目录等。

用户同样可以自己定义环境变量,使用export命令:

$ ZHANG=23
$ export ZHANG
$ bash              # 进入子进程
$ echo $ZHANG
23
$

可见,在export变量后,该变量可以被当前进程和当前进程的子进程读取和使用,也就是说,该变量成为了环境变量。

你可能感兴趣的:(bash中的变量)