一、Shell中变量的声明和引用

[root@ssspure ~]# var1=Hello
[root@ssspure ~]# echo $var1
Hello
[root@ssspure ~]# echo ${var1}World
HelloWorld

在Shell中,变量的引用使用$。

上面的代码中,$var1就是对变量var1的引用,输出的结果是Hello。


如果想链接其他字符,将变量放到大括号{}里面,然后在后面跟上其他内容。

例如上面的代码中:${var1}World最后的结果就是HelloWorld


注意:Shell是一种弱类型的编程语言,并不是这个值用双引号引用它就是字符串。单引号、双引号和反引号的区别主要在于对变量和命令的解析上。


二、双引号的使用

Shll中双引号可以用来解析变量。

[root@ssspure ~]# var2="$var1"
[root@ssspure ~]# echo $var2
Hello

如上图代码所示:将变量var1的引用放到双引号里面,然后赋给var2,var2的值就变成了var1的值。

由此可以看出,双引号可以解析变量。


三、单引号

[root@ssspure ~]# var2='$var1'
[root@ssspure ~]# echo $var2
$var1

从上面的代码中可以看出,单引号和双引号最大的区别就是单引号无法解析变量,赋给变量的是什么就是什么,并不会因为是某个变量就将其解析出来。


四、反引号

反引号主要用来解析命令

[root@ssspure ~]# whoami
root
[root@ssspure ~]# var=`whoami`
[root@ssspure ~]# echo $var
root

在上面的代码中,将whoami放到单引号中,并且赋值给变量var,那么var的值就是命令whoami的值,也就是说反引号中的内容会当做命令来进行解析。


[root@ssspure ~]# var1="whoami"
[root@ssspure ~]# echo $var1
whoami
[root@ssspure ~]# var=`$var1`
[root@ssspure ~]# echo $var
root

从上面的代码中可以看出,当反引号里面有变量引用的时候,会先将变量解析出来,然后将变量解析出来的结果作为命令来解析,最后赋值给变量var。


以上就是对Shell脚本中常用的三种引号的学习。