定义变量

[root@localhost ~]# a=huahua

定义变量时,注意等号的两边不能有空格。

变量名也有一些要注意的地方,和大多数编程语言一样:

命名只能使用英文字母,数字和下划线,首个字符不能以数字开头;

中间不能有空格,可以使用下划线;

不能使用标点符号;

不能使用bash里的关键字。

使用变量

注意:我们定义变量的时候不需要加“$”,但是在使用的时候必须要加上“$”。比如

[root@localhost ~]# echo $a

huahua

[root@localhost ~]# echo ${a}

huahua

加上花括号是为了帮助解释器识别变量的边界,比如当我们要输出一句话时:

[root@localhost ~]# a=java

[root@localhost ~]# echo "Do you want to study $ascript?"

Do you want to study ?

[root@localhost ~]# echo "Do you want to study ${a}script?"

Do you want to study javascript?

解释器会把$ascript看成一个变量,就不会成为我们想要的样子。

另外,我们还要说一下只读变量,使用readonly命令可以将变量定义为只读变量,只读变量的值不能被改变:

[root@localhost ~]# readonly a

[root@localhost ~]# a=90

-bash: a: readonly variable

前面我们已经定义过a变量了,设为只读变量之后不能再改变它的值了。

删除变量

使用unset命令,删除后不能再使用了,而且unset命令不能删除只读变量。

要想删除只读变量,只能退出登录或者重开一个shell。

[root@localhost ~]# b="girl"

[root@localhost ~]# echo $b

girl

[root@localhost ~]# unset b

[root@localhost ~]# echo $b

 

删除之后再调用没有任何输出。

变量类型

1、局部变量

在脚本或命令行中定义,仅在当前shell实例中有效,其他shell启动不能访问局部变量。

2、环境变量

所有的程序都能访问环境变量。环境变量分为系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的系统变量则是该用户使用系统时加载的环境变量。

3、shell变量

由shell程序设置的特殊变量,有环境变量和局部变量。

推荐一个博客,大家可以去看一下环境变量的配置:https://blog.csdn.net/jiangyanting2011/article/details/78875928