【Linux学习笔记】25:用户自定义变量

用户自定义变量是Bash变量中最自由的变量,它的内容、名称、作用都可以自定义。

[1]定义变量

变量名=变量值

注意在Bash变量定义时,等号左右两边不能加空格。如果变量值有空格,那么需要给它加上双引号或者单引号(在前面学过了单双引号的区别)。

[root@bogon ~]# name="l zh"
[root@bogon ~]# name = "l zh"
-bash: name: command not found

注意加了空格之后,系统报错,它认为输入的是一个系统命令,而它没有找到这样的命令,所以就报错了。

[2]变量的调用

echo $变量名

echo命令是输出命令,这是最简单的调用方法,即输出变量的值。还有其它的调用方法,但是只要是调用变量,就要在变量前面加dollar符号。

[root@bogon ~]# echo $name
l zh

Linux中的变量的值默认都是字符串,不能直接做数值运算:

[root@bogon ~]# x=5
[root@bogon ~]# y=6
[root@bogon ~]# z=$x+$y
[root@bogon ~]# echo $z
5+6

[3]变量的叠加

有时候不需要覆盖变量的值,需要在变量值后面加入其它的,就要用到变量的叠加。

[root@bogon ~]# x=123
[root@bogon ~]# x="$x"456
[root@bogon ~]# echo $x
123456

或者用这样的方式:

[root@bogon ~]# x=123
[root@bogon ~]# x=${x}456
[root@bogon ~]# echo $x
123456

[4]变量的查看

调用只是去读取里面的数据,而set可以去查询系统当中所有已经生效的变量。
【Linux学习笔记】25:用户自定义变量_第1张图片
当用echo去调用一个变量的值,结果为空时,有两种可能:①变量存在但没有值 ②变量根本不存在,为了区分这两种情况,可以使用set -u命令:

[root@bogon ~]# echo $a

[root@bogon ~]# set -u
[root@bogon ~]# echo $a
-bash: a: unbound variable

对于不存在的变量,就会明确提示了。即如果设定此选项,调用未声明的变量时会报错。

[5]变量的删除

unset 变量名

删除多个变量时,中间加空格而不是逗号:

[root@bogon ~]# unset x
[root@bogon ~]# unset y,z,name
-bash: unset: `y,z,name': not a valid identifier
[root@bogon ~]# unset y z
[root@bogon ~]# unset name

你可能感兴趣的:(Linux)