在配置文件中使用特定字符进行注释(例如#)取决于...?

在配置文件中使用特定字符进行注释(例如#)取决于...?

我需要帮助解决有关评论的讨论在配置文件中。这是关于“什么决定在任何给定程序中使用哪个字符/字符串进行注释?”的问题。

理论 A) 指出,这由程序开发人员自行决定。虽然在类 Unix 操作系统下的程序中普遍采用 # 字符在配置文件中进行注释(例如:ssh 配置文件、/etc/fstab 等),但任何人都可以在新应用程序中指定在该应用程序使用的配置文件中, //、++ 或任何其他字符串构成注释的开头。

理论 B) 指出,上述使用 # 的广泛实践实际上是强制性的,因为配置文件就像 Bash 脚本,因此 bash 脚本中有效的语法以某种方式(可能通过标准或某些操作系统范围)规定指令),相同的语法也适用于任何程序的配置文件 - 这就是为什么 # 是大多数配置文件中的注释字符的原因。

理论 C) 指出,一些完全不同的因素决定了配置文件中使用哪个字符串进行注释(请指定)。

下列的似乎指向理论A):

存在许多不同的配置文件格式,每个应用程序或服务可能具有唯一的格式。

,但这不是一个明确的答案。感谢您的任何提示,来源也将不胜感激!

答案1

读取配置文件的程序可以自由地对文件的内容执行任何操作。也就是说,这完全取决于程序员的想法。配置文件与任何其他数据文件没有任何区别,其中大多数数据文件至少在某种程度上是特定于应用程序的。因此,如果我愿意,我可以将该字母a作为注释标记,或者声明特定中的非空格字符柱子标记评论(就像旧版本的 Fortran 一样)。

也就是说,这两个字符对于任何用户来说都是完全出乎意料的,因此最好使用#或其他一些常用字符(例如;)。但使用的原因#仅有的因为事实上它是常见的,并不是因为 Bash(或任何 shell)与它有任何直接关系。

一般来说,大多数配置文件都不是脚本,尽管它们可能包含脚本中的赋值或 C 样式大括号块 ( { ... };)。这对于简单性来说是有好处的,但对于那些需要做非常复杂的事情的极端情况来说可能并不好。

但在某些情况下需要配置文件实际上是 Bash 脚本,或者 Javascript 代码,或者 Lua 代码,或者 Python 代码,或者其他什么。例如,/etc/default/Debian 中的文件是 shell 脚本,它们由各种程序的 init 脚本读取(无论如何在 systemd 之前的时代)。而且如果你的程序是用Lua实现的,读取Lua脚本作为配置文件实现起来非常简单。

答案2

没有所谓的“配置文件”类别,每个程序,乃至每个程序员都可以自由地使用他们喜欢的任何内容。我不知道任何来源,但我可以给您一些使用各种字符的配置文件的示例(只需为每个类别选择一个随机示例):

  1. #:/etc/nfsmount

  2. ;/etc/php/php.ini

  3. %:/etc/slsh.rc

  4. //:/etc/java11-openjdk/security/policy/unlimited/default_local.policy

这些只是我快速浏览后发现的/etc。我确信您还会在某个地方找到 python 风格的配置文件,其中注释可以#""".

所以不,没有硬性规则,每个人都按照自己喜欢的方式去做,但许多人默认为#

相关内容