Dec 7.2012
 
Shell变量用于保存系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应变化。通过使用变量,Shell程序能够提供更加灵活的功能,适应性更强。
常见的Shell变量的类型包括用户自定义变量、环境变量、预定义定量、位置变量。
 
1.              自定义变量... 2
1         定义新的变量... 2
2         查看和引用变量的值... 2
3         为变量赋值的常用方法... 2
1     双引号 “”... 2
2     单引号(‘’... 2
3     反撇号(``... 3
4     read命令... 3
4         设置变量的作用范围... 4
5         清除自定义的变... 4
6         数值变量的运算... 5
2.              环境变量... 5
3.              预定义变量... 5
4.    位置变量... 5
 

1. 自定义变量

Shell脚本(1)变量应用_第1张图片

用户自定义变量是由系统用户自己定义的变量,只在用户自己的Shell环境中有效,因此又称为本地变量。
 

1)定义新的变量

2)查看和引用变量的值

3)为变量赋值的常用方法

【1】双引号 (“”)

使用双引号时,允许在双引号的范围内使用“$”号来引用其他变量的值(变量引用)。
把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。
 

【2】单引号(‘’)

使用单引号时,将不允许在单引号的范围内引用其他的变量的值,“$”符号或者其他任何符号将作为变通字符看待。
可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。

【3】反撇号(``

使用反撇号时,允许将执行特定命令的输出结果赋给变量(命令替换),反撇号内包含的字串必须是能够执行的命令,执行后会用输出结果替换该命令字串。
 
 

【4】read命令

Shell脚本(1)变量应用_第2张图片

除了以上赋值操作以外,还可以使用bash的内置命令read来给变量赋值。Read命令可以从终端读取输入,实现简单的交互过程。Read将从标准输入读入一行内容,并以空格为分隔符,将读入的各字段分别赋值给指定列表中的变量(多余的内容赋给最后一个变量)。若指定的变量只有一个,则将整个内容赋值给该变量。

4)设置变量的作用范围

对于用户自行定义的变量,默认情况下只能在当时的Shell环境中使用,因此称为局部变量。局部变量在新开启的子Shell环境中是无效的(无法引用定义的变量)。
为了使用定义的变量在所有的子Shell环境中能够继续使用,减少重复设置工作,可以使用export命令将指定的变量设置为“全局变量”。Export命令可以同时使用多个变量名作为参数(不使用“$”符号),变量之间以空格分隔。
Export命令还可以在输出变量的同时对指定名称的变量进行赋值,这样在使用export命令之前就不需要单独为变量进行赋值了。

5)清除自定义的变量

Shell脚本(1)变量应用_第3张图片

当用户不再需要使得自定义变量时,可以使用unset命令对已定义的用户变量进行清除,指定一个或多个变量名称作为参数即可(以空格分隔)。

6)数值变量的运算

Shell脚本(1)变量应用_第4张图片
 
Bash程序并不适合进行强大的数学运算(如小数、指数等),一般只适合进行简单的整数运算。对Shell变量进行数值运算时,更多的时候是用于脚本程序的过程控制(如循环次数等)。对整数数值变量进行算术运算时,可以使用expr表达命令。

2. 环境变量

 
 

3. 预定义变量

 

4.位置变量