定义变量
[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