shell解释器中的变量和可执行文件

时间:2015-03-05 17:02:32

标签: c shell interpreter

您知道吗,如何在shell解释器中区分变量和可执行文件?因为我不知道如何在我的词法分析器中做到这一点。 如果有人有想法^^

谢谢, 祝你有愉快的一天

马修

1 个答案:

答案 0 :(得分:0)

在正常的Posix风格的shell中,第一个"字"在不是变量赋值的语句中是要执行的命令。变量赋值的格式为name=value,其中 = 周围不能有任何空格,name是有效的变量名。

除此之外,在算术评估上下文中(基本shell不需要),任何变量的使用必须以 $ 开头。

识别作业是上下文的,但由于 = 是强制性的,所以很容易做到。例如,在flex-style lexer中,您可以使用适当的启动条件启用和禁用赋值识别。

在不了解您的词法分析策略的情况下,很难提供更详细的答案。

如果您关心与Posix shell语法的兼容性,可以找到描述here