मुझे वर्तमान में उपयोग करने के लिए हमारी आंतरिक विकास टीम के लिए कुछ कमांड लाइन सहायक उपयोगिता बनाने के लिए काम सौंपा गया है। हालांकि, मैं यूनिक्स कमांड लाइन उपकरण बनाने के लिए सबसे अच्छा अभ्यास जानना चाहता हूं। पैरामीटर को पढ़ने और तदनुसार संदेशों को प्रदर्शित करने के उदाहरण के लिए मैंने git source code देखने का प्रयास किया है। हालांकि, मैं एक उपकरण बनाने, पैरामीटर को सुरक्षित रूप से पढ़ने और मानक "सहायता" संदेशों को प्रदर्शित करने के लिए एक स्पष्ट टेम्पलेट की तलाश में हूं, यदि कोई उपयोगकर्ता गलत पैरामीटर में टाइप करता है या --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;
}
}
आप 'getopt()' को देखा है? यदि नहीं, तो 'getopt_long' देखें जो आप चाहते हैं, और आंखों पर भी आसान है। –