今天我们来说一下,shell中的特殊符号。
一、Bash的特殊符号
1、双单引号
' '
:单引号。在单引号中所有的特殊符号,如$
和" ` "(反引号)都没有特殊含义。
2、双引号
" "
:双引号。在双引号中特殊符号都没有特殊含义,但是$
、" ` "和\
除外,这三个符号是有特殊含义的,拥有“调用变量的值”、“引用命令”和“转义符"的特殊含义。
- 单引号和双引号的区别举例:
3、$
符号
$
:用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
在Linux系统中,定义一个变量非常简单,直接用变量名=变量值
的格式定义变量就可以了。而我们在查看变量值的时候,使用$变量名
就可以查看到。如下图,用echo命令查看变量name的值,如果我们不加$
,echo命令会认为要输出name字符串,如果在name前加上$符号,echo命令就会输出变量name的值。请看下图:
4、反引号
" ` ` ":反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$( )
作用一样,不过推荐使用$( )
,因为反引号非常容易看错。
5、$( )
符号
$( )
:和反引号作用一样,用来引用系统命令。
如果我们直接从命令行中执行一个系统命令(如date命令),这个时候命令是不用$( )
符号括起来的,因为shell是可以直接调用系统命令的。
那什么时候需要把系统命令括起来呢?
如定义一个变量a,需要把date命令的结果,赋值给a的时候,如a=date
。这个时候就需要让date命令先运行,再把所得到的值赋值给变量a。如下图:
上图中可以看到,如果date命令不加反引号,shell会认为把date字符串赋值给a变量。