CLI 应用程序报告未指定参数的“Unix 方式”是什么?

Iva*_*van 5 command-line arguments

我正在开发一个我想遵循“Unix 方式”的应用程序。

如果不带参数调用它,我应该如何编程它(这没有实际意义):

  • 显示错误信息
  • 显示帮助,或
  • 0考虑到指定的任务(无关紧要)是否成功完成,退出默默返回?

Gil*_*il' 8

这取决于您的应用程序期望什么样的参数。如果它处理文件,如果没有指定参数(例如:cat, tee, ...),传统的做法是从标准输入读取并写入标准输出。如果应用程序具有交互模式,则在未指定参数的情况下启动它(例如:sh, ed)。如果应用程序需要处理某个对象,则显示错误消息并以非零状态退出(例如:cp, rm)。如果应用程序需要命令,则显示使用消息并以非零状态退出(例如:sed, tar)。


anl*_*lar 6

最常见的变体:

  • 使用子句“查看完整帮助类型 app-name --help”显示应用程序帮助的简短版本;

  • 显示信用和许可证;

  • “错误:未指定操作(使用 -h 获取帮助)”。

  • 如果程序可以从标准输入中读取(大多数 Unix CLI 命令可以执行的操作),那么简单地等待输入也是可以接受的。例如,`cat` 会这样做。 (3认同)