为新的unix工具添加quiet / verbose标志有多重要?

时间:2010-01-24 19:28:13

标签: ruby unix

我正在编写一些带有选项标志的unix风格的Ruby脚本。通常,我会在这些脚本中编写很多STDOUT.putsSTDERR.puts个参数。现在我想知道将--verbose-q标志用于打开或关闭STDERR的有用输出是否是“好形式”。

反对这样做的两个论点是

  1. 会使程序更复杂,
  2. 用户可以通过将STDERR重定向到/ dev / null
  3. 来使日志记录输出静音

    但是再一次,Unix哲学的一个原则是沉默是金色的,这意味着应该总是有一个--verbose模式标志。但是,这是否与制定小项目的原则紧密相关?

    第二个问题是:如果沉默/冗长的标志是个好主意,那么冗长会不会是默认的?

    一些UNIX编程专家可以提供建议。

2 个答案:

答案 0 :(得分:4)

  

但这并不紧张   制作小型节目的宗旨   那做得好吗?

您如何将错误或状态消息提取到特殊程序中?他们该计划的一部分做“一件好事”。一个让你无法诊断问题的程序并没有做得很好。

一般来说,看看Unix程序,标准行为似乎是每次默认输出任何内容或最低限度的有用信息,而且只有在激活详细模式时才更多。这是有道理的,因为当它正常工作时你通常对程序的状态输出不感兴趣 - 并且你不应该让程序的用户做额外的工作,使它的行为与最常见的情况一样。

答案 1 :(得分:3)

我必须重定向STDERR才能让它们关闭的工具是我不使用的工具。支持安静运行并不复杂。