bash
在阅读了@Tim有关shell语法的一些问题之后,我正在翻阅手册页,然后我想到了一个我自己的(简单)问题。
这是摘录man bash
(请参阅LESS=+/^DEFINITIONS man bash
:
word A sequence of characters considered as a single unit by the
shell. Also known as a token.
...
metacharacter
A character that, when unquoted, separates words. One of the
following:
| & ; ( ) < > space tab
control operator
A token that performs a control function. It is one of the fol-
lowing symbols:
|| & && ; ;; ( ) | <newline>
但是这是我没有得到的圈子:
;
是一个“元字符”。;;
是一个令牌。;;
是一个词。但是,这意味着它是一个由两个单词分隔符组成的单词。鉴于它是未引用的并且不需要识别周围的空格(或者是?),这怎么可能?
如果您感到好奇,那么我正在阅读的有关Shell语法的其他问题如下:
Bash使用与POSIX相同的术语(不足为奇)。使用它进行比较(有时需要澄清)。
引用定义
3.113 控制操作员
在shell命令语言中,是执行控制功能的令牌。它是以下符号之一:
& && ( ) ; ;; newline | ||
外壳内部使用的输入结束指示符也被视为控制运算符。
注意:令牌识别在XCU令牌识别中详细定义。
3.407代 币
在shell命令语言中,是一系列字符,在读取输入时,shell会将这些字符视为一个单位。令牌可以是运算符,也可以是单词。
注意:XCU令牌识别中详细定义了读取输入的规则。
3.440 字
在shell命令语言中,是运算符以外的令牌。在某些情况下,单词也是单词标记的一部分:在各种形式的参数扩展(例如$ {name-word})和变量赋值(例如name = word)中,单词是所描述的标记的一部分按字。在保留单词扩展字段之后,单词的概念不再适用。
因此,您看到,“单词”和“令牌”之间存在区别,并且它们与问题中所隐含的含义不同。此外,该标准不认为两个分号是单独的字符,而是单个单位。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句