Bash-如何区分控制运算符和元字符?
根据: 控制操作员 执行控制功能的令牌。它是一个换行符或下列换行符之一:“| |”、“&&”、“&”、“;”、“;”、“|”、“&”、”,或“” 元字符 一种字符,在不加引号的情况下分隔单词。元字符是空白字符或以下字符之一:“|”、“&”、“;”、“,”、“,” 许多字符既是控制运算符又是元字符 那么,我怎样才能知道例如a 如果条件允许,则采取行动;然后CMD;以fi为例 );在上下文中似乎是一个控制运算符,因为它可以被换行符替换。 但是,移除周围的前置和后置空间;还可以。Bash-如何区分控制运算符和元字符?,bash,shell,Bash,Shell,根据: 控制操作员 执行控制功能的令牌。它是一个换行符或下列换行符之一:“| |”、“&&”、“&”、“;”、“;”、“|”、“&”、”,或“” 元字符 一种字符,在不加引号的情况下分隔单词。元字符是空白字符或以下字符之一:“|”、“&”、“;”、“,”、“,” 许多字符既是控制运算符又是元字符 那么,我怎样才能知道例如a 如果条件允许,则采取行动;然后CMD;以fi为例 );在上下文中似乎是一个控制运算符,因为它可以被换行符替换。 但是,移除周围的前置和后置空间;还可以。 如果它是一个操作员,
如果它是一个操作员,不是应该用sapces来分隔吗?根据bash手册,操作员是: 控制运算符或重定向运算符。参见重定向, 获取重定向运算符的列表。运算符至少包含一个 不带引号的元字符 元字符基本上是任何不能成为单词一部分的字符 词的定义: 由shell作为一个单元处理的字符序列。单词不能包含无引号的元字符 操作符周围不需要空格,因为它们总是包含元字符,这使解析器知道它不是单词的一部分 一个例外是重定向,例如
ls 2>&1
在重定向语句之前需要一个空格,因为运算符有一个参数2,并且要求该参数位于运算符旁边,否则它将是ls的一个参数。根据bash手册,运算符是: 控制运算符或重定向运算符。参见重定向, 获取重定向运算符的列表。运算符至少包含一个 不带引号的元字符 元字符基本上是任何不能成为单词一部分的字符 词的定义: 由shell作为一个单元处理的字符序列。单词不能包含无引号的元字符 操作符周围不需要空格,因为它们总是包含元字符,这使解析器知道它不是单词的一部分 一个例外是重定向,例如
ls 2>&1
在重定向语句之前需要一个空格,因为运算符有一个参数2,并且要求该参数位于运算符旁边,否则它将是ls的一个参数。我没有考虑到;与…相同,与…相同,与…相同,与…相同,与…相同,与…相同,与…相同,与…相同,与…相同,与…相同,与…相同。