कुछ कमांड और प्रोग्राम -hमदद दिखाने के लिए उपयोग करते हैं, कुछ उपयोग --helpऔर कुछ दोनों को पहचानते हैं। यह मुझे पागल बना देता है। क्या सही को चुनने का कोई नियम है?
man command
कुछ कमांड और प्रोग्राम -hमदद दिखाने के लिए उपयोग करते हैं, कुछ उपयोग --helpऔर कुछ दोनों को पहचानते हैं। यह मुझे पागल बना देता है। क्या सही को चुनने का कोई नियम है?
man command
जवाबों:
मुझे डर है कि कोई नियम नहीं है: इतिहास को दोष दें।
मूल रूप से डॉस और उसके पूर्ववर्तियों का इस्तेमाल किया गया था /?, जबकि यूनिक्स -एक विकल्प संकेतक के रूप में इस्तेमाल किया /गया था , क्योंकि एक निर्देशिका विभाजक था; चूंकि शेल -?फ़ाइल नाम विस्तार द्वारा एक अलग स्ट्रिंग में विस्तारित हो सकता है , -hइसलिए आदर्श बन गया।
अब तक, तुलनात्मक रूप से सीधा।
में cmdकई आदेशों को बनाए रखने के /?सम्मेलन, लेकिन यूनिक्स / लिनक्स से लिखित उन का उपयोग कर सकते -h, /hया /help।
इस बीच लिनक्स में कुछ कमांड इतने सारे आलिंगनबद्ध हो गए कि अधिकांश वर्णमाला विकल्पों में उपयोग की गई थी, इसलिए विकल्प के लिए अधिक क्रिया --का उपयोग किया गया, -और अधिक सामान्य विकल्पों के लिए विकल्प के रूप में एकल बनाए रखा गया। और यहीं से टकराव शुरू हुआ: जैसे आदेशों में lsऔर duयह महसूस किया गया कि -hलंबे समय तक पर्यायवाची के रूप में बेहतर इस्तेमाल किया गया था --human-readable, क्योंकि यह मदद से अधिक बार कहा जाता था।
चीजें आगे को मुश्किल करने के लिए, कुछ कार्यक्रमों की स्थानीय भाषा संस्करणों के मापदंडों का अनुवाद किया है, ताकि फ्रेंच में मदद विकल्प बन जाता है -aसे aider या assister , उदाहरण के लिए।
एक चीज जो अक्सर काम करती है --: यह लगभग हमेशा एक अमान्य विकल्प होता है, और कार्यक्रम आमतौर पर एक त्रुटि की रिपोर्ट करेगा, और फिर या तो पूरी मदद देगा या आपको बताएगा कि सहायता विकल्प क्या है।
अंतत: उपयोगकर्ता प्रोग्रामर की इच्छा के अधीन होते हैं: विंडोज और लिनक्स दोनों में बड़ी संख्या में लोगों द्वारा लिखी गई उपयोगिताएँ हैं, और हम उनके हाथों में हैं।
मैं चाहूंगा कि यह अलग हो, लेकिन अंततः हमें जो उपलब्ध है, उसके साथ काम करना होगा या अपने स्वयं के संस्करणों को बनाए रखने के लिए अपना जीवन बिताना होगा।
इसका कारण निम्नलिखित कारण है:
सबसे पहले, अधिकांश लिनक्स कमांड निम्नलिखित फंक्शन का उपयोग करके मापदंडों का समर्थन करते हैं:
getopt () और getopt_long ()।
getopt () विभिन्न विकल्पों में अंतर करने के लिए "-" के साथ एकल वर्ण का समर्थन करने के लिए उपयोग किया गया था
लंबे विकल्प अर्थात getopt_long () (पूर्व: --help) एक GNU एक्सटेंशन है जो अधिक पठनीयता प्रदान करता है और मापदंडों के अर्थ को भी समझता है।
getopt_long () दोनों छोटे और लंबे पैरामीटर टाइपिंग का समर्थन करता है और यही कारण है कि कई कमांड दोनों का समर्थन कर सकते हैं।
एक और कारण दोनों मापदंडों का समर्थन करना चाहते हैं: पिछड़े संगतता को बनाए रखना।
JFYR: http://en.wikipedia.org/wiki/Getopt
मुझे आशा है कि ऊपर मदद करता है।