Linux 下的配置文件采用#注释掉时,系统是忽略整个一行还是只是忽略该项?

2016-04-20 13:10:41 +08:00
 Stupitch

我不是专业的程序员,只是一个数码爱好者,没事的时候爱折腾一些生产力工具(最近在折腾 openwrt ),自然多多少少接触 Linux 。但是在搞配置文件的时候,我冒出了一个疑问,特来问问大家。 假如有一个参数选项( option )是“ abc ”,那么出现如下所示的配置时系统会如何处理?

abc=xyz

#abc=opq

系统会选择无视掉#abc=opq 这一行,然后执行 abc=xyz ?还是说系统会检测出矛盾,对这个选项做出处理(生效不生效我不知道)。

还有一个问题是:如果同时出现了两个重复的标注路径的信息,系统又会如何处理?例如下方代码同时出现了两个重复的路径,而根据我的经验,系统会选择执行默认路径而选择忽略掉自定义路径,并且不会给出错误信息。路径是这么处理的,那么如果换做配置参数选项( option )呢?系统会执行默认的参数选项?还是说会报错?

abc.log=默认路径

abc.log=自定义路径

2460 次点击
所在节点    问与答
5 条回复
oott123
2016-04-20 13:35:13 +08:00
每个程序的表现不一样,但通常而言你把它注释了,代表这一行都“不存在”,程序会无视它。
SpicyCat
2016-04-20 15:33:10 +08:00
1. 仅仅忽略被注释的那一行,所以你的例子里, abc=xyz 是生效的。
2. 配置文件有重复项目,这个怎么处理要看具体程序,但就我的经验而言,一般是不报错的,取最后一项,也就是后面的项目会覆盖前面的。
Stupitch
2016-04-20 15:39:21 +08:00
@SpicyCat 经你这么一说,好像确实是后项生效。不知道有没有文档手册之类的给予说明?
SpicyCat
2016-04-20 16:15:18 +08:00
@Stupitch 看 manpage 吧,不过一般 manpage 只是写各个项目是什么作用,有部分会写如果重复了会怎么处理。
AntonChen
2016-04-20 22:26:35 +08:00
一般是从#号开始到行末,不排除有中间#号整行注释的奇葩!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/272505

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX