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

标签 c shell interpreter

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

谢谢, 祝你有美好的一天

马修

最佳答案

在普通的 Posix 风格 shell 中,语句中的第一个“单词”(不是变量赋值)是要执行的命令。变量赋值的形式为 name=value,其中 = 周围不能有任何空格,并且 name 是有效的变量名称。

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

识别分配是与上下文相关的,但由于 = 是强制性的,所以很容易做到。例如,在 Flex 风格的词法分析器中,您可以使用适当的开始条件启用和禁用赋值识别。

如果不了解更多关于词法分析策略的信息,就很难提供更详细的答案。

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

关于c - shell解释器中的变量和可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28883511/

相关文章:

c - `mkl_malloc` 上出现段错误

c - 使用 strtok 运行多个命令

c++ - 使用 C++ 的解释器和编译器的好书?

compiler-construction - 解释器和动态类型语言

c - STM32 - 如何启用 DWT 循环计数器

c - 在 STM32F0 上使用 TIM1 进行 PWM 时出错

c - 取消引用 int 指针与 char 指针

bash - 如何获取所有可用 shell 命令的列表

bash - 如何定义具有可变数量参数的 shell 脚本?

javascript - 将 Fortran 语言转换为 Javascript