单引号: ‘ ‘
双引号: “ ”
反引号: ` `
反斜线: \
Shell 利用单引号,双引号,反引号,反斜线来转换某些Shell元字符的含义,有时我们希望echo 命令输出的字符中就包含$符号本身,但一般情况下,Shell会将$视为取变量值
像这样情况我们需要使用某些功能来屏蔽$符号本身的特殊含义,使其还原字面意义。
反斜线:
可以将紧随其后的单个字符视为字面意义上的字符,如*在Shell中代表任意字符,在查找时经常会使用*来查找多个
匹配的文件,
echo * #显示当前目录下的所有文件
install.log.syslog anaconda-ks.cfg install.log
echo \* #显示*字符
*
#换行输入多行命令,在命令末尾使用\回车后,\可以将回车的命令提交功能屏蔽,从而将回车认为换行继续输入命令,实现命令的多行输入功能
find / \
> -name "test.txt" \
> -type f \
> -size +5M
单引号:
可以将它中间的所有任意字符还原为字面意义,实现屏蔽Shell元字符的功能。
注意可以在两个单引号中间单独插入一个单引号,单引号必须成对出现
echo ’$HOME‘ #单引号将屏蔽$的特殊功能
$HOME
echo 'test\' #默认\为转义换行,这里也被屏蔽
test\
双引号:
双引号类似于单引号,但其不会屏蔽 `和\和$这三个Shell元字符的含义,如果需要屏蔽这些字符含义,必须前置一个\符号,其它字符的
功能将被屏蔽(包括单引号)。也就是说,两个双引号之间的单引号不必成对出现。
echo “This’s book”
This‘s book
echo “$HOME”
/root
echo "\$HOME"
反引号:
Shell中使用反引号进行命令替换,命令替换使Shell可以将命令为命令执行结果的输出内容,同样的功能也可以用$()来实现。
echo "Today is `date + %D` "
Today is 02/09/13
echo "Today is $(date + %D) "
Today is 02/09/13