为什么Linux配置文件中会出现不同的注释字符?

为什么Linux配置文件中会出现不同的注释字符?

我对 Linux 配置文件中的注释字符很熟悉#。还有其他几个例子——

/etc/modules-load.d/ 下的内核模块“空行和第一个非空白字符为 # 或 ; 的行将被忽略。”

X 的 Xresources“要向您的 Xresources 文件添加注释,只需在其前面加上感叹号(!)...”

为什么Linux配置文件中会出现不同的注释字符?

这是弗兰肯斯坦的事情吗?它非常简单,每当我发现不同的示例时,我都会感到惊讶。

答案1

配置文件由程序通过实现解析器标记器(词法分析器)某种类型。该分析器包含为该特定程序赋予文档中字符含义的代码。

程序可以实现他们想要的任何类型的解析器,因此配置文件的语法必须符合它的期望。如果它被编写为识别#//REM,或者它是否将[]中的所有文本视为设置名称,并且所有以除[之外的任何内容开头的行都被视为注释文本,完全取决于编写或实现解析器的人。

内核内置的解析器遵循一组规则,而 X 内置的解析器使用另一组规则。我们无法读懂别人的想法,所以你不太可能知道为什么会做出这样的选择。重要的是事实就是如此,无论你为哪个系统编辑配置文件,你都需要使用这些规则。

相关内容