“--silent”标志是否应该抑制警告和错误,或者只是警告?

“--silent”标志是否应该抑制警告和错误,或者只是警告?

--silent我正在设计一个基于终端的应用程序,如果他们不想要的话,我想实现一个标志来抑制噪音。

在此应用程序中,当应用程序无法执行必要的任务时,最常记录错误;当无法执行某些操作但应用程序仍然可以运行时,会记录警告。

那么,也就是说,--silent标志应该抑制警告和错误,还是仅仅抑制警告?对此的一般惯例是什么?

在 中rubyruby -w0关闭警告对于您的脚本(信息来自ruby --help

但在curl,curl --silent抑制全部输出。

答案1

正如您在curl/中看到的ruby,没有通用约定。这在很大程度上取决于您的应用程序以及它可能出现的问题。这还取决于它的使用方式。对于某些应用程序来说,拥有--quiet--really-quiet标志是有意义的,但对于某些应用程序来说,这有点过分了。此外,--really-quiet从技术上讲,通常不需要标志,因为您可以使用 丢弃所有消息2>/dev/null。作为一般准则,我建议如下:

  • 有一个有意义的返回码。如果您的应用程序可以区分不同的错误类(例如用户错误、外部错误),则具有不同的返回码并记录它们。

  • 如果您的应用程序可以产生大量警告,请使用一个标志来仅过滤警告。如果您的应用程序具有不同的日志级别(如信息、通知、警告、错误),请使用一个标志来过滤它们。 (喜欢:-q-qq-qqq。)

  • 如果您的应用程序主要以交互方式使用,请抑制警告,但不要抑制错误。特别是如果应用程序在错误后没有停止。

  • 如果您的应用程序主要在自动设置中使用,请抑制警告和错误,因为无论如何都没有人会查看它们。但前提是应用程序在该错误后停止并生成有意义的返回代码。

相关内容