通常对于弱类型的程序设计语言来说,变量的功能都比较单薄。但是对于Shell来说,变量的功能却非常强大。为了加强变量的功能,Shell对变量的使用方法进行了极大的扩展。本节将介绍其中的引用和替换。
引用
所谓引用,就是指将字符串用引号包括起来,以防止其中的特殊字符被Shell解释为其他含义。在Shell中,一共有4种引用符号,如下表所示,
引用符号 | 说明 |
---|---|
双引号 | 除$、单引号、反引号和反斜线之外,其他的字符都保留字面意思 |
单引号 | 所有的字符都保留字面意思 |
反引号 | 反引号中的字符串将被解释为Shell命令 |
反斜线 | 转义字符,屏蔽后面字符的特殊意义 |
注意:双引号引用时, 除$、单引号、反引号和反斜线之外,其他的字符都保留字面意思.
全引用
在Shell语句里面,当一个字符串被单引号
引用起来以后,其中所有的字符,除了单引号之外,都被解释为字面意识,也就是字符本身的含义。这意味着被单引号引用起来的所有字符都将被解释为普通的字符
,因此,这种引用称为全引用。
演示使用全引用的用法,
#! /bin/bash
#定义变量
v1="xiaowang"
#全引用输出含有变量名的字符串
echo 'Hello , $v1'
该程序的执行结果如下,
Hello , $v1
部分引用
如果用户使用双引号将字符串引用起来,则其中所包含的字符除美元符号(
),反引号(‘),以及反斜线(\)之外的所有其他字符,都将被解释为字面意识,这就称为部分引用。∗∗也就是说,在部分应用中美元符号,反引号,以及反斜线仍具有特殊的含义。∗∗例如,"
”符号,可以用来引用变量的值。
演示部分引用的用法,
#! /bin/bash
#定义变量
v1="xiaowang"
#全引用输出含有变量名的字符串
echo "Hello , $v1"
改程序的执行结果如下,
Hello , xiaowang
命令替换
所谓命令替换,是指在Shell程序里面将某个Shell命令的执行结果赋值给某个变量。
在bash中,有两种语法可以进行命令的替换,分别使用反引号和圆括号。
`Shell_command`
$(Shell_command)
上面的语法是等价的,用户可以根据自己的习惯选择。
演示使用反引号的使用方法,
#! /bin/bash
#变量替换
v1=`pwd`
# v1=$(pwd)
#输出变量的数值
echo "current working dir is $v1"
改程序的执行结果,
current working dir is /root
转义
转义的作用主要是转换某些特殊的字符的意义
。当反斜线后面的一个字符具有特殊的意义时,反斜线将屏蔽该字符的特殊含义,使得Shell按照该字符的字面意义来解释。例如,下面的例子可以看到转义的作用
[root@VM_114_176_centos /]# echo $SHELL
/bin/bash
[root@VM_114_176_centos /]# echo \$SHELL
$SHELL