我正在编写一系列共享相同父命令的 CLI 工具,类似于git
.
program verb OPTIONS
动作动词之一install
被设计为git clone
与指定的 URL 一样多的存储库。
什么是确定程序成功或失败的稳健且类似 UNIX 的逻辑方法?
- 好的网址 > 0 → EXIT_SUCCESS
- 错误 URL == 0 → EXIT_SUCCESS
- 将有效 URL 的数量写入标准输出,然后 (1) 或 (2)
- 返回有效 URL 的数量。
- 其他?
答案1
你的程序至少应该退出(3) EXIT_SUCCESS
(即 0)成功,可能EXIT_FAILURE
(即 1)失败。您可以复制(或受到启发)FreeBSD sysexits.h更多失败代码(但我不确定这是否值得)。
别忘了给标准错误(或通过系统日志(3))对于任何类型的失败。根据您的描述,即使子命令git clone
的一个(众多)存储库失败也install
应该是失败的。
用户可能会执行一些纠正操作(例如纠正错误 URL 的拼写),然后重复相同的命令,因此您可能希望它是幂等的。
不要忘记--help
选项,并记录 0 和 1 之外的任何退出代码。