shell运算符的优先级

S7_*_*7_0 4 shell parsing bnf ll-grammar

我目前正在尝试使用BNF和LL解析器在C中重新编写shell.否则,我需要知道'|'的shell运算符的优先级是什么 ,"<<",",","<",">>",">","&",";" ?

有人能提供给我吗?谢谢

ric*_*ici 6

  1. 重定向(<,>,>>,<>,<&.>&并且>>-,还有这里,文档<<delimiter和这里串<<<word)大致相同的命令行参数,并且可以在一个简单的命令出现在任何地方,包括命令字之前.实际上,它们绑定最紧密,就像大多数语言中的后缀运算符一样.
  2. 管道(|)是最强大的二元运算符.他们与左边相关联.
  3. 最后是短路布尔(&&||).与许多语言不同,它们具有相同的优先级.他们也与左派联系在一起.

,不是bash运算符.;并且&是语句终止符,而不是分隔符,尽管在某些情况下最终分隔符是可选的.实际上,它们具有最低优先级.

有关详细信息,请参阅shell语法.有很多细节.