在 Linux 上,每个软件都可以决定他希望使用的配置格式。有些使用 TOML、INI、JSON、XML、CSV、YAML、JS、CSS、脚本等。
然而,一些配置文件使用类似 INI 的文本格式,这似乎是非标准的,例如:
一个文本文件,其中每一行由一个键和一个由一个或多个空格字符分隔的值组成,以“#”开头的行是注释,有时它有某种“块”(例如在 SSH 中):
Include /etc/ssh/ssh_config.d/*.conf
Host *
# ForwardAgent no
SendEnv LANG LC_*
使用了一个变体(例如在 Nginx 中),其中“块”由 {} 定义:
server {
listen 127.0.0.1:80;
}
是否有任何名称/词组用于指定这种类型/系列/种类的格式?
“基于文本的配置格式,结构层次较弱”
这就是我所说的两个例子的共同点。nginx 配置文件在句法上与 SSH 配置文件和 JSON 不同——粗略地看一眼可能看起来很相似,但是两个解析器可以对文件内容做的事情完全不同,我什至都不会想把它们放在同一类语法中。