我目前的任务是创建一些命令行帮助实用程序供我们的内部开发团队使用。但是,我想知道创建 unix 命令行工具的最佳实践。我尝试查看git 源代码以获取有关如何读取参数并相应地显示消息的示例。但是,我正在寻找一个清晰的模板来创建工具、安全地读取参数以及在用户输入不正确的参数或--help
我想显示帮助消息时显示标准的“帮助”消息。是否有一个标准库用于根据传递的参数读取-abcFGH
和切换哪个进程启动?--parameter
命令行:
git
或者
git --help
输出:
usage: git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[-c name=value] [--help]
<command> [<args>]
...
命令行:
MyTool CommandName --CommandArgs
输出:
无论该特定命令做什么。
到目前为止我所做的工作:
代码:
int main(int argc, char **argv)
{
if(argc < 2)
helpMessage();
char* commandParameter = argv[1];
if (strncmp(argv [1],"help", strlen(commandParameter)) == 0)
helpMessage();
else if (strncmp(argv [1],"pull", strlen(commandParameter)) == 0)
pull();
else
helpMessage();
}
理想的情况如下所示:
代码:
int main(int argc, char **argv)
{
MagicParameters magicParameters = new MagicParameters(argv);
switch(magicParameters[1])
{
case command1:
Command1();
break;
case ...
case help:
default:
HelpMessage();
break;
}
}