用户自定义变量
顾名思义,用户自定义,也就是用户自己定义的变量,在一定的范围内,你可以随意定义,而那个范围就是用户变量定义格式。
变量格式:
变量名,由字母或下划线打头,不允许数字开头,后面由字母、数字或下划线组成,并且大小写字母意义不同。
变量赋值,在“=”后边直接指定变量内容是为变量赋值的最基本方法,注意,“=”两边没有空格。
一些常见的错误:
[root@linus ~]# 1=2
bash: 1=2: 未找到命令...
[root@linus ~]# 1 =2
bash: 1: 未找到命令...
[root@linus ~]# a= 2
bash: a: 未找到命令...
[root@linus ~]# a=2
使用变量
在使用变量时,需在变量名前加$。我在学习的时候就有一个疑问,到底为什么需要加上$符号。难道是脚本声明类似的约定俗成吗?可是不加的话就会报错,这就和脚本声明不一样了。
后来我才知道,很多命令无法读取变量中的数据,所以需要使用$符号进行调用,而有些命令可以直接读取,则不需要加上$符号。删除命令unset就是一个例子,不管加还是不加,都不影响其功能。
[root@linus ~]# unset $a
[root@linus ~]# unset a
而一些无法读取的命令,若不加上$符号,将无法读取其中的数据。
[root@linus ~]# echo $a
hhh
[root@linus ~]# echo a
a
注意事项
虽说在规范下可以为所欲为地创建变量,但是,千万要注意,对于系统提前定义好的环境变量,不要乱对其修改,否则将会影响自己正常使用。
使用env可查看系统提前定义好的环境变量。
比如说,环境变量LANG,是中国字符集,若进行更改,可以导致其丧失功能。
[root@linus ~]# echo $LANG
zh_CN.UTF-8
[root@linus ~]# asdad
bash: asdad: 未找到命令...
[root@linus ~]# LANG=HHH
[root@linus ~]# asdad
bash: asdad: command not found...
对于这种情况,把更改的变量还原即可。
[root@linus ~]# LANG=zh_CN.UTF-8
[root@linus ~]# asdad
bash: asdad: 未找到命令...