Shell中单引号、双引号、反引号、反斜杠的使用

来自Shiyin's note
跳到导航 跳到搜索

shell可以识别4种不同类型的引字符号: 单引号字符(”) 双引号字符(“”) 反斜杠字符(\) 反引号字符也就是ESC下方的键(`)

  • 单引号 ( ” )

当shell碰到第一个单引号时,它将忽略掉其后所有特殊字符,直到右引号位置结束。

  • 双引号 ( “” )

双引号作用与单引号类似。单引号是让shell忽略所有特殊字符,而双引号只要求忽略大多数的字符。 具体说,括在双引号中的三种特殊字符不被忽略:$,\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变 量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。

 $echo “MY PATH IS $PATH”
  • 反引号(“)

命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或者$(…) 结构括起来,其中,$(…)格式受到POSIX标准支持,也利于嵌套。

$echo The date and time is `date`
The date and time is Wed Feb 17 13:14:43 CST 2010
$echo Your current working directory is $(pwd)
Your current working directory is /root

这里的$pwd就相当于 `pwd`

  • 反斜杠 backslash-escaped( \ )

反斜杠一般用作转义字符,或称逃脱字符,linux如果echo要让转义字符发生作用,就要使用-e选项,且转义字符要使用双引号

echo -e “\n”

反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种用法,在分几行输入长命令时经常使用。