代码之家  ›  专栏  ›  技术社区  ›  dan

向新的Unix工具添加安静/详细标志有多重要?

  •  3
  • dan  · 技术社区  · 15 年前

    我正在编写一些带有选项标志的Unix风格的Ruby脚本。通常,我会写很多 STDOUT.puts STDERR.puts 这些脚本中的语句。现在我想知道是否是“好的形式”加入 --verbose -q 打开或关闭有用输出到stderr的标志。

    反对这样做的两个理由是

    1. 这会使程序更加复杂,
    2. 用户已经可以通过将stderr重定向到/dev/null来停止日志输出。

    但是,同样,Unix哲学的一个原则是,沉默是金色的,这意味着应该总是有一个——冗长的模式标志。但是,这难道不符合让小程序做得好的原则吗?

    第二个问题是:如果静默/冗长标志是一个好主意,那么冗长是否应该是默认值?

    可以请一些Unix编程大师建议吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   ergosys    15 年前

    我必须重定向stderr才能让它们关闭的工具是我不使用的工具。支持安静操作并没有那么复杂。

        2
  •  4
  •   Michael Borgwardt    15 年前

    但这不是紧张吗 小节目制作的宗旨 有一件事做得好吗?

    如何将错误或状态消息提取到Spearate程序中?他们是 一部分 这个项目的“一件事”做得很好。一个让你无法诊断问题的程序做得不好。

    一般来看unix程序,标准的行为似乎是在每个默认情况下都不输出任何有用信息或最基本的有用信息,而且只有在激活详细模式时才会输出更多有用信息。这是有意义的,因为当程序正常工作时,您通常对它的状态输出不感兴趣——并且您不应该让程序的用户做额外的工作,以使其在最常见的情况下表现出所需的行为。