命令行处理 - 标记和元字符

命令行处理 - 标记和元字符

我刚刚学习命令行处理,希望有人能确认我如何解释以下语句。在书中我正在阅读命令行处理的第一步是:

  1. 将命令拆分为由固定元字符集分隔的标记:空间,标签,新队;()<>|, 和&。标记的类型包括单词、关键字、I/O 重定向器和分号

我对命令的看法是否正确:

ls | more

lsmore是标记,字符pipemeta character分隔两个标记的符号?

我有点困惑,因为它接着说<>are meta characters,但随后又说 token can be I/O directors

答案1

这不是一个很好的解释。 A代币是形成单词或标点符号的字符序列。像<和 之类的字符|也是令牌的一部分。您可以将它们称为元字符,但这不是有用的术语。基本规则是:

  • 空格不是令牌的一部分,用于分隔令牌。
  • 令牌由普通字符或运算符字符组成()<>&|;,但不能同时由两者组成。例如,foo<@a&>b由标记foo(普通)、<(运算符)、@a(普通)、&>(运算符) 和组成b

然后还有关于引用的附加规则:特殊字符如果被引用就会失去意义,根据引用的类型有不同的规则。例如,foo'&&'bar\|qux是具有字符序列 的单个标记foo&&bar|qux

相关内容