元字符(指在shell中有特殊含义的字符)
< > | ; ! ? * [ ] $ \ " ' ` ~ ( ) { } ^
双引号”“
消除元字符的特殊含义,除$ ` “三个字符外,均当作普通字符处理
单引号‘ ’
除单引号自身外,都当作普通字符来处理,可以使用\来消除单引号的特殊语义
单引号 `
命令替换,将一个命令的输出作为另一个命令的参数
通过下面的例子来理解上面的文字解释,双引号的实例和单引号的实例对比来看,更容易理解。
双引号的实例
#!/bin/bash
#这里的``(倒引号),执行了pwd命令,并没有被当成普通字符打印出来
echo "curent directory is `pwd`"
#这里的$HOME被当成环境变量打印出来
echo "home directory is $HOME"
#这里的* . ?都被当做普通字符直接打印出来
echo "file *.?"
#这里的''被当作普通字符打印出来
echo "directory '$HOME'"
#这里的\$指明将$当作一个普通字符
echo "filename is No\$\*"
单引号的实例
#!/bin/bash
#在''中,除了''之外所有的字符都被当作普通字符处理了
echo 'curent directory is `pwd`'
echo 'home directory is $HOME'
echo 'file *.?'
#在''中里面的因为$HOME使用了''所以被当作特殊字符
echo 'directory '$HOME''
echo 'filename is NO\$\*'