linux shell之变量的使用规则

时间:2022-07-23
本文章向大家介绍linux shell之变量的使用规则,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

声明

以下内容均引用自鸟哥私房菜

变量的使用规则

1.变量与变量内容以一个等号”=”连接

[root@localhost ~]# myname=lichao

2.等号两边不能存在空格字符

[root@localhost kernel]# myname=li chao
bash: chao: command not found...

3.变量名称只能是英文字母或者数字,但是开头字符不能是数字

4.变量内容若有空格符可使用双引号或者单引号将变量内容结合起来,但是

1)双引号内的特殊字符可以保持原有的特性 2)单引号内的特殊字符仅为一般字符 如下所示:引用变量myname

[root@localhost ~]# myname=lichao
[root@localhost ~]# echo $myname
lichao
[root@localhost ~]# info="$myname is an software engineer"
[root@localhost ~]# echo $info
lichao is an software engineer
[root@localhost ~]# info2='$myname is an software engineer'
[root@localhost ~]# echo $info2
$myname is an software engineer

5.可以使用转义字符””将特殊符号(如[enter],$,空格,!)等变成一般字符

[root@localhost ~]# var=i'm an engineer
[root@localhost ~]# echo $var
i'm an engineer

6.想要在原有变量上增加内容,可以使用

”$变量”或者${变量}
[root@localhost kernel]# info="my name is lichao"
[root@localhost kernel]# info=${info},and age is
[root@localhost kernel]# echo $info
my name is lichao,and age is
[root@localhost kernel]# info="$info" xxx
[root@localhost kernel]# echo $info
my name is lichao,and age is xxx

7.在一串命令中如果想引用其它命令,可以使用反单引号或者$(命令)

给变量赋值

[root@localhost zabbix]# version=$(uname -r)
[root@localhost zabbix]# echo $version
3.10.0-514.16.1.el7.x86_64

或者在路径中引用

[root@localhost zabbix]# cd /lib/modules/`uname -r`/kernel
[root@localhost kernel]# pwd
/lib/modules/3.10.0-514.16.1.el7.x86_64/kernel

注意反单引号或者$(命令) 这里面需要的是命令,不要和第6条中的变量的增加搞混淆了,上面version变量已经赋值了,但是像下面这样的写法是有问题的。

[root@localhost kernel]# cd /lib/modules/$(version)/kernel
bash: version: command not found...
-bash: cd: /lib/modules//kernel: No such file or directory

$()里面应该是指令而不应该是变量,要想引用变量内容需要使用中括号。

[root@localhost ~]# cd /lib/modules/${version}/kernel
[root@localhost kernel]# pwd
/lib/modules/3.10.0-514.16.1.el7.x86_64/kernel

8.取消变量的使用unset 变量名

查看环境变量可以使用指令env,查看环境变量和自定义变量可以使用set。

[root@localhost locale]# set | grep myname
info2='$myname is an software engineer'
myname=lichao

也可以使用export来查看环境变量,但是export通常是用来将自定义变量转换成环境变量。

备注:以上内容均是学习鸟哥私房菜这本书做的笔记。