--silent
我正在设计一个基于终端的应用程序,如果他们不想要的话,我想实现一个标志来抑制噪音。
在此应用程序中,当应用程序无法执行必要的任务时,最常记录错误;当无法执行某些操作但应用程序仍然可以运行时,会记录警告。
那么,也就是说,--silent
标志应该抑制警告和错误,还是仅仅抑制警告?对此的一般惯例是什么?
在 中ruby
, ruby -w0
关闭警告对于您的脚本(信息来自ruby --help
)
但在curl
,curl --silent
抑制全部输出。
答案1
正如您在curl
/中看到的ruby
,没有通用约定。这在很大程度上取决于您的应用程序以及它可能出现的问题。这还取决于它的使用方式。对于某些应用程序来说,拥有--quiet
和--really-quiet
标志是有意义的,但对于某些应用程序来说,这有点过分了。此外,--really-quiet
从技术上讲,通常不需要标志,因为您可以使用 丢弃所有消息2>/dev/null
。作为一般准则,我建议如下:
有一个有意义的返回码。如果您的应用程序可以区分不同的错误类(例如用户错误、外部错误),则具有不同的返回码并记录它们。
如果您的应用程序可以产生大量警告,请使用一个标志来仅过滤警告。如果您的应用程序具有不同的日志级别(如信息、通知、警告、错误),请使用一个标志来过滤它们。 (喜欢:
-q
,-qq
,-qqq
。)如果您的应用程序主要以交互方式使用,请抑制警告,但不要抑制错误。特别是如果应用程序在错误后没有停止。
如果您的应用程序主要在自动设置中使用,请抑制警告和错误,因为无论如何都没有人会查看它们。但前提是应用程序在该错误后停止并生成有意义的返回代码。