我正在编写一些带有选项标志的unix风格的Ruby脚本。通常,我会在这些脚本中编写很多STDOUT.puts
和STDERR.puts
个参数。现在我想知道将--verbose
或-q
标志用于打开或关闭STDERR的有用输出是否是“好形式”。
反对这样做的两个论点是
但是再一次,Unix哲学的一个原则是沉默是金色的,这意味着应该总是有一个--verbose模式标志。但是,这是否与制定小项目的原则紧密相关?
第二个问题是:如果沉默/冗长的标志是个好主意,那么冗长会不会是默认的?
一些UNIX编程专家可以提供建议。
答案 0 :(得分:4)
但这并不紧张 制作小型节目的宗旨 那做得好吗?
您如何将错误或状态消息提取到特殊程序中?他们该计划的一部分做“一件好事”。一个让你无法诊断问题的程序并没有做得很好。
一般来说,看看Unix程序,标准行为似乎是每次默认输出任何内容或最低限度的有用信息,而且只有在激活详细模式时才更多。这是有道理的,因为当它正常工作时你通常对程序的状态输出不感兴趣 - 并且你不应该让程序的用户做额外的工作,使它的行为与最常见的情况一样。
答案 1 :(得分:3)
我必须重定向STDERR才能让它们关闭的工具是我不使用的工具。支持安静运行并不复杂。