在Linux中,引号有两个作用:1、控制字符替换;2.执行包含单词的功能。我们已经使用了引号。在我们的脚本中,引号用于将文本信息分配给常量:TITLE="SystemInformationfor$HOSTNAME"RIGHT_NOW=$(date+"%x%r%Z")TIME_STAMP="Updatedon$RIGHT_NOWby$USER"文本信息用双引号括起来。我们使用双引号的原因是——我们想将所有单词括起来并将它们作为一个整体对待。如果我们不使用引号,那么bash解释器会将第一个单词之后的所有单词解释为其他命令(第一个单词被解释为命令)。尝试运行以下命令以查看会发生什么:单引号和双引号shell解释器识别双引号和单引号。以下复制表达式在效果上是等效的:var="thisissometext"var='thisissometext'但是,双引号和单引号之间有一个重要的区别。单引号,对字符替换有限制。正如我们在上一节中看到的,您可以将变量括在双引号中,shell解释器仍将对该变量执行字符替换。我们使用echo命令可以看到这样的效果:如果我们把上面的双引号改成单引号,那么行为就会改变:双引号不是以“$”开头的变量的有限字符替换,但是,它确实限制了通配符的扩展。例如,下面的示例:引用单个字符您会遇到另一种引用字符。这是反斜杠。反斜杠告诉反斜杠告诉shell解释器忽略反斜杠后的第一个字符。例如:通过使用反斜杠字符,shell解释器忽略了对“$”符号的解释。由于shell忽略了“$”,shell解释器不会对$HOSTNAME执行字符替换。接下来,一个更有用的示例:如您所见,我们可以使用反斜杠符号将双引号括在文本中。使用反斜杠的其他技巧如果你看过任何软件手册,而这个手册是由GNU项目完成的,那么你会发现在软件的命令选项中,除了一个下划线_后面跟着一个字母之外还会出现在形式上,还有两个下划线加一个完整的单词的形式。例如,下面两条语句是等价的:为什么软件都支持这两种形式?短形式是专门为那些懒惰的打字者设计的,而长形式是专门为写脚本而存在的。我有时会混合使用上述两种形式,并且我发现如果我编写了一个脚本并且我将在几个月后阅读它,那么使用长命令选项很有用。看到长长的命令选项可以帮助我理解命令选项的含义,从而节省了我查看man手册的精力。现在多敲几下键,以后会省很多力气。这样,惰性原则得以保持。您可能担心使用长命令形式会使单个命令变得很长。为了解决这个问题,您可以使用反斜杠告诉shell解释器忽略换行符,如下所示:像这样使用反斜杠允许我们将每一行的内容包含在一个单独的命令中。要使该技术适用,需要注意的地方:换行符必须紧跟在反斜杠后面(即输入反斜杠后,必须输入换行符)。如果在反斜杠后放置一个空格字符,那么空格字符将被忽略,而不是换行符。反斜杠字符,也可用于在文本中插入特殊符号。特殊字符到我们的文本中。这些符号,称为-转义字符,下面有一些转义字符:转义字符……………………..名称的可能用途n换行符在文本中添加空行t制表符向文本添加水平制表符警报使您的终端嘟。\BackslashInsertabackslashcharacterfformfeed将其发送到您的打印机弹出页面转义字符的使用很常见。转移字符是很常见的。这种思想最早出现在C语言中。今天的shell解释器、C++、perl、python、awk、tcl和其他编程语言都使用转义字符的概念。通过使用echo命令的-e选项,我们将演示上面转义字符的应用:
