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

Ben*_*ane -1 configuration conventions shell-script

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

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

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

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

下面似乎点理论中的一个):

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

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

ilk*_*chu 6

读取配置文件的程序可以随意处理文件内容。也就是说,这完全取决于程序员的心血来潮。没有什么可以将配置文件与任何其他数据文件分开,其中大多数至少在某种程度上是特定于应用程序的。因此,如果我愿意,我可以将字母a作为注释标记,或者声明特定中的非空格字符标记注释(就像在旧版本的 Fortran 中一样)。

也就是说,对于任何用户来说,这两者都是完全出乎意料的,因此最好使用#或其他一些常用字符(如;)。但之所以使用#唯一的,因为事实上,它是常见的,而不是因为击(或任何壳)有什么直接用它做。

通常,大多数配置文件都不是脚本,即使它们可能包含脚本中的赋值,或 C 样式的大括号 ( { ... };)。这有利于简单,但可能不适用于那些需要做非常复杂的事情的真正极端情况。

但在某些情况下,配置文件实际上是一个bash脚本,或JavaScript代码,或者Lua代码,或Python代码,或什么的。例如,/etc/default/Debian 中的文件是 shell 脚本,它们由各种程序的 init 脚本读取(无论如何在预系统时间)。而且如果你的程序是用 Lua 实现的,那么读取一个 Lua 脚本作为配置文件是非常容易实现的。


ter*_*don 5

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

  1. #/etc/nfsmount

  2. ;/etc/php/php.ini

  3. %/etc/slsh.rc

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

这些只是我在快速浏览后发现的那些/etc。我敢肯定,你还会发现Python风格的配置文件的地方在那里评论可以是#或只是"""

所以不,没有硬性规定,每个人都可以随心所欲,但许多默认为#.