一、什么是变量
相信大家听到变量这个词语很敏感吧,我们的C语言中也有所谓的变量,变量即在程序运行过程中它的值是允许改变的量。
也可以这么说,变量的本质是一种键值对,举个例子来说:str=“123456”,“12345”就是键值对中的Value,str就是键值对中的Key值。
二、shell变量的使用
1.变量名以英文字母或者下划线开头,但是不能以数字开头
2.变量名区分大小写
3.变量名与等号之间,等号与变量值之间不要有空格
4.只有在使用变量的值的时候,才在变量名之前加,其他情况,比如删除、赋值、循环迭代都不用加 ,其他情况,比如删除、赋值、循环迭代都不用加,其他情况,比如删除、赋值、循环迭代都不用加
5.如果一行只有一条命令,则每一行不用以分号结尾,每一条命令以换行分隔
6.如果一行有多条命令,则每一条命令以分号分隔,但建议每行只有一条命令
7.当赋值的内容中包含空格,要加引号
三、shell变量的分类
shell变量分为三类,分别为环境级变量,用户级变量,系统级变量;
(1)环境级变量只在当前shell中生效,shell关闭变量丢失,
(2)用户级变量只针对当前用户有效,
(3)系统级变量被写在系统的配置文件/etc/profile中
注意: 变量是保存在程序运行的内存中的,所以shell变量不能永久的保存在系统中。
四、实践
首先说明:echo是输出文本
来看一个例子:
1 #!/bin/bash
2
3 var="hello shell"
4
5 echo $var
6 var='123'
7 echo $var
#这个是一个简化的写法,原型是 echo $
结果:
hello shell
123
我们再来看一组例子:
1 #!/bin/bash
2
3 var=132
4 echo $var
5 echo "$var"
6 echo '$var'
结果:
132
132
$var
咦,神奇,为什么会出现这个问题?
很显然,我们会发现一个是单引号,另外一个是双引号,单引号的变量替换被禁止掉了;这之间的区别我就得说道说道了。
单引号为强引用,双引号为弱引用,即弱引用,引用的是变量值,而”即强引用,引用的是变量本身的值。这么简明的说法想必大家都懂了吧!!!
两者的区别在于, ““弱引用不能转译 “”,”`”,"!","$"
来看一个例子:
1 #!/bin/bash
2
3 echo "\"
4 echo '\'
结果:
\
1
2
3
五、局部变量
在shell中,局部变量是要声明的——local
例子:
1 #!/bin/bash
2
3 b=5
4 fun1()
5 {
6 b=3
7 echo $b
8 }
9
10 fun2()
11 {
12 local b=1
13 echo $b
14 }
15 echo $b
16 fun1
17 echo $b
18 fun2
19 echo $b
结果:
由此可见,局部变量不会影响全局变量。
六、删除变量
通常我们删除变量是用unset函数,比如
1 #!/bin/bash
2
3 var="hello shell"
4 unset var
5 echo $var
我们会发现结果是空,成功删除了var环境变量。
领取专属 10元无门槛券
私享最新 技术干货