Obecnie mam zadanie tworzenia narzędzi pomocniczych wiersza poleceń dla naszego wewnętrznego zespołu programistycznego. Jednak chcę poznać najlepszą praktykę tworzenia narzędzi wiersza polecenia systemu Unix. Próbowałem wyświetlić git source code, aby zapoznać się z przykładowym sposobem odczytywania parametrów i wyświetlania komunikatów. Jednak szukam jasnego szablonu do tworzenia narzędzia, bezpiecznego odczytu parametrów i wyświetlania standardowych komunikatów "pomocy", jeśli użytkownik wpisze nieprawidłowy parametr lub --help
Chcę wyświetlić komunikat pomocy. Czy istnieje standardowa biblioteka do odczytu -abcFGH
i --parameter
i przełączania, który proces rozpoczyna się w oparciu o przekazany parametr?Jaka jest najlepsza praktyka w tworzeniu narzędzia wiersza polecenia unix/linux w języku C/C++?
Command-Line:
git
lub
git --help
wyjściowa:
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>]
...
Command-Line:
MyTool CommandName --CommandArgs
wyjściowa:
Cokolwiek to specyficzna komenda robi.
Co mam pracę do tej pory:
Kod:
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();
}
Jaki byłby idealny będzie wyglądać następująco:
kod:
int main(int argc, char **argv)
{
MagicParameters magicParameters = new MagicParameters(argv);
switch(magicParameters[1])
{
case command1:
Command1();
break;
case ...
case help:
default:
HelpMessage();
break;
}
}
Pan spojrzał na 'getopt()'? Jeśli nie, sprawdź 'getopt_long', który jest, co chcesz, i jest również łatwiejsze dla oczu. –