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

版权声明:本文为博主原创文章,转载请备注https://blog.csdn.net/travelerwz。 https://blog.csdn.net/Travelerwz/article/details/84252484

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 ${var}

结果:

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 '\\'

结果:

\
\\


五、局部变量
在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

结果:

5
3
3
1
3

由此可见,局部变量不会影响全局变量。


六、删除变量
通常我们删除变量是用unset函数,比如

  1 #!/bin/bash
  2 
  3 var="hello shell"
  4 unset var
  5 echo $var

我们会发现结果是空,成功删除了var环境变量。


猜你喜欢

转载自blog.csdn.net/Travelerwz/article/details/84252484
今日推荐