V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Stupitch
V2EX  ›  问与答

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

  •  
  •   Stupitch · 2016-04-20 13:10:41 +08:00 · 2548 次点击
    这是一个创建于 3148 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    abc=xyz

    #abc=opq

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

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

    abc.log=默认路径

    abc.log=自定义路径

    5 条回复    2016-04-20 22:26:35 +08:00
    oott123
        1
    oott123  
       2016-04-20 13:35:13 +08:00 via Android
    每个程序的表现不一样,但通常而言你把它注释了,代表这一行都“不存在”,程序会无视它。
    SpicyCat
        2
    SpicyCat  
       2016-04-20 15:33:10 +08:00
    1. 仅仅忽略被注释的那一行,所以你的例子里, abc=xyz 是生效的。
    2. 配置文件有重复项目,这个怎么处理要看具体程序,但就我的经验而言,一般是不报错的,取最后一项,也就是后面的项目会覆盖前面的。
    Stupitch
        3
    Stupitch  
    OP
       2016-04-20 15:39:21 +08:00
    @SpicyCat 经你这么一说,好像确实是后项生效。不知道有没有文档手册之类的给予说明?
    SpicyCat
        4
    SpicyCat  
       2016-04-20 16:15:18 +08:00
    @Stupitch 看 manpage 吧,不过一般 manpage 只是写各个项目是什么作用,有部分会写如果重复了会怎么处理。
    AntonChen
        5
    AntonChen  
       2016-04-20 22:26:35 +08:00 via iPhone
    一般是从#号开始到行末,不排除有中间#号整行注释的奇葩!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1022 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 20:28 · PVG 04:28 · LAX 12:28 · JFK 15:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.