在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Shell引用机制元字符UNIX Shell 提供有特殊意义的各种元字符,同时利用他们在任何 Shell 脚本,并导致终止一个字,除了引用。 举个例子,在列出文件中的目录时 ? 匹配一个一元字符,并且 * 匹配多个字符。下面是一个 Shell 特殊字符(也称为元字符)的列表:
在一个字符前使用 \ ,它可能被引用(例如,代表它自己)。 例子下面的例子,显示了如何打印 * 或 ? :
这将产生下面的结果。
现在,让我们尝试使用引用字符:
这将产生以下结果:
$ 符号是一个元字符,所以它必须被引用,以避免被 Shell 特殊处理:
这将产生以下结果:
是以下四种形式的引用:
单引号考虑包含许多特殊的 Shell 字符的 echo 命令:
在每个特殊字符前加反斜杠会显得异常繁琐,并且不容易阅读:
有一个简单的方法来引用一大组字符。将一个单引号(')放在字符串的开头和结尾:
单引号内的任何字符被引用正如每个字符前均加上一个反斜杠。所以,现在这个 echo 命令将正确地显示。 如果要输出的一个字符串内出现一个单引号,你不应该把整个字符串置于单引号内,相反你应该在单引号前使用反斜杠(\)如下:
双引号尝试执行以下 Shell 脚本。这个 Shell 脚本使用了单引号:
这将输出以下结果:
所以这不是你想显示的内容。很明显,单引号防止变量替换。如果想替换的变量值和如预期那样使引号起作用,那么就需要把命令放置在双引号内,如下:
这将产生以下结果:
除以下字符外,双引号使所有字符的失去特殊含义:
单引号内的任何字符被引用正如每个字符前均加上一个反斜杠。所以,现在这个 echo 命令将正确地显示。 如果要输出的字符串内出现一个单引号,你不应该把整个字符串置于单引号内,相反你应该在单引号前使用反斜杠(\)如下:
反引号置于反引号之间的任何 Shell 命令将执行命令 语法下面是一个简单的语法,把任何 Shell 命令置于反引号之间: 例子
例子下面将执行 date 命令,产生的结果将被存储在 DATA 变量中。
这将输出以下结果:
|
请发表评论