linux中的单引号、双引号、反引号
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux单引号、双引号、反引号
1.反单引号(上分隔符,位于tab键上方):
在linux命令行中,若命令行中以反单引号(也被称为上分割符,位于tab键上方)包含`...`字符串时,会首先执行``(上分割符)中包含的命令,然后将其输出插入到上分割符所在位置。这就是linux中的命令替换。1对``被称为上分割符。
命令替换类似于linux中的管道,区别在于命令替换是将`...`上分割符中命令的输出插入到上分割符所在位置,而管道是将前一命令的输出作为后一命令的输入。
示例:
# echo `help`
首先执行help命令,然后将help命令的输出插入到上分割符所在位置。该命令也等效于:
# echo $(help)
2.单引号:
单引号‘’用来保护指定文字不被转换格式——单引号会忽略所包含的所有特殊字符。
通常使用单引号来保证指定字符串按原样输出。
示例:
# echo '$*>
$*>
# echo '\\\\'
\\\\
# echo ‘`help`’
`help`
注意,可在命令中使用反单引号``(也被称为上分割符,位于tab键上方)包含其它命令,则shell 会首先执行反单引号内的命令,将该命令的输出插入到反单引号所在位置——命令替换。比如echo `help`,将首先执行help命令,将help命令的输出插入到上分割符所在位置,则最终会按照echo命令的格式输出help命令的输出。
若在单引号‘’中使用反单引号``,则会屏蔽反单引号的命令替换作用,而直接原样输出反单引号以及它所包含的内容。
# echo 'today is `date`'
today is `date` # 单引号会屏蔽上分割符的“命令替换”功能
3.双引号:
双引号“”用来包含文字或函数段。在双引号中,除以下元素外,其余都是按原样输出:
●``反单引号(上分割符)修饰的函数;
●‘$’开头的变量;
●‘\’开头的转义字符。
单引号会屏蔽所包含的所有特殊字符,而双引号会屏蔽大多数特殊字符(但不包括以上3种)。
双引号的主要作用是将带有空格的字符串赋值给变量。比如:
$ str = "today is Monday"
$ echo str
today is Monday
若在上述语句中不使用双引号,则shell会将空格后的部分解释成命令。比如
$ str = today is Monday
bash: is: command not found
示例:
echo "today is `date`"
today is Fri Jul 4 08:07:07 GMT 2008
echo "\\\\"
\\
echo "test "test""
test test