运行一系列类似任务时如何确定程序成功?

运行一系列类似任务时如何确定程序成功?

我正在编写一系列共享相同父命令的 CLI 工具,类似于git.

program verb OPTIONS

动作动词之一install被设计为git clone与指定的 URL 一样多的存储库。

什么是确定程序成功或失败的稳健且类似 UNIX 的逻辑方法?

  1. 好的网址 > 0 → EXIT_SUCCESS
  2. 错误 URL == 0 → EXIT_SUCCESS
  3. 将有效 URL 的数量写入标准输出,然后 (1) 或 (2)
  4. 返回有效 URL 的数量。
  5. 其他?

答案1

你的程序至少应该退出(3) EXIT_SUCCESS(即 0)成功,可能EXIT_FAILURE(即 1)失败。您可以复制(或受到启发)FreeBSD sysexits.h更多失败代码(但我不确定这是否值得)。

别忘了给标准错误(或通过系统日志(3))对于任何类型的失败。根据您的描述,即使子命令git clone的一个(众多)存储库失败也install应该是失败的。

用户可能会执行一些纠正操作(例如纠正错误 URL 的拼写),然后重复相同的命令,因此您可能希望它是幂等的。

不要忘记--help选项,并记录 0 和 1 之外的任何退出代码。

相关内容