shell脚本学习第三弹-变量的使用

一、什么是变量

相信大家听到变量这个词语很敏感吧,我们的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环境变量。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181120G1WUXP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券