Какова лучшая практика для создания инструмента командной строки unix / linux в C / C ++?
В настоящее время мне поручено создать некоторые вспомогательные утилиты командной строки для нашей внутренней команды разработчиков. Тем не менее, я хочу знать, как лучше всего создавать инструменты командной строки Unix. Я пробовал просмотрgit source code для примера того, как читать параметры и отображать сообщения соответственно. Однако я'ищу четкий шаблон для создания инструмента, безопасного чтения параметров и отображения стандарта »Помогите" сообщения, если пользователь вводит неверный параметр или--help
Я хочу показать сообщение помощи. Есть ли стандартная библиотека для чтения-abcFGH
а также--parameter
и переключение, какой процесс начинается на основе переданного параметра?
Командная строка:
git
или же
git --help
Выход:
usage: git [--version] [--exec-path[=]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=] [--work-tree=] [--namespace=]
[-c name=value] [--help]
[]
...
Командная строка:
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;
}
}