shell中的三种引号

元字符(指在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\$\*'

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_36528114/article/details/80177402