2015-08-09 177 views
-1

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

有谁能提供给我吗? 谢谢

+0

这与C – Olaf

+0

无关是的,但是当你想要编写一个shell时,你使用什么语言 你需要知道shell运算符的优先级 –

+0

这与我写的没有矛盾。问题是关于shell,而不是实现语言。因为你甚至都没有提到壳......你自己做了什么来找到答案?但是,是的,它肯定比较容易,而不是仅仅搜索或搜索手册页。 – Olaf

回答

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

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

查看详情shell grammar。有很多细节。