Tôi hiện đang được giao nhiệm vụ tạo một số tiện ích trợ giúp dòng lệnh cho nhóm phát triển nội bộ của chúng tôi để sử dụng. Tuy nhiên, tôi muốn biết cách thực hành tốt nhất để tạo các công cụ dòng lệnh unix. Tôi đã thử xem git source code để biết ví dụ về cách đọc thông số và hiển thị thông báo cho phù hợp. Tuy nhiên, tôi đang tìm một mẫu rõ ràng để tạo công cụ, đọc thông số an toàn và hiển thị thông báo "trợ giúp" chuẩn nếu người dùng nhập thông số không chính xác hoặc --help
Tôi muốn hiển thị thông báo trợ giúp. Có thư viện chuẩn nào để đọc số -abcFGH
và --parameter
và quá trình chuyển đổi nào bắt đầu dựa trên thông số được truyền không?Cách tốt nhất để tạo công cụ dòng lệnh unix/linux trong C/C++ là gì?
Command-Line:
git
hoặc
git --help
Output:
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
Output:
Dù rằng lệnh cụ thể thực hiện.
Những gì tôi đã làm việc cho đến nay:
Code:
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();
}
Điều gì sẽ là lý tưởng sẽ trông như thế này:
Code:
int main(int argc, char **argv)
{
MagicParameters magicParameters = new MagicParameters(argv);
switch(magicParameters[1])
{
case command1:
Command1();
break;
case ...
case help:
default:
HelpMessage();
break;
}
}
Bạn đã nhìn 'getopt() '? Nếu không, hãy kiểm tra 'getopt_long' đó là những gì bạn muốn, và cũng dễ dàng hơn trên mắt. –