संपादित करें: यह बताया गया है कि यह शैली एक GNU-ism है, और यह कि गैर-GNU आधारित यूनिक्स एकल-डैश सिंटैक्स (विशेष रूप से, OS X और BSD वेरिएंट) का उपयोग करते हैं।
जीएनयू-इसम स्थिति के बावजूद, कई नए लिखित यूनिक्स-शैली कार्यक्रम इस शैली का उपयोग करते हैं:
--long-option
लंबे विकल्प नामों के लिए,
-s
छोटे (एक-चरित्र) विकल्पों के लिए,
-abc
बिना तर्क के कई छोटे विकल्पों के लिए (एक विकल्प प्रति वर्ण)।
- तर्क के साथ विकल्प:
--long arg
या --long=arg
लंबे विकल्पों के लिए,
-s arg
, -sarg
या (वैकल्पिक रूप से) -s=arg
छोटे विकल्पों के लिए। इसे अन्य छोटे विकल्पों के साथ जोड़ा जा सकता है, जब तक कि अंतिम में केवल एक तर्क हो।
- एक ही "शब्दार्थ" विकल्प में कई उपनाम हो सकते हैं, सबसे सामान्य रूप से एक (टाइप करने के लिए तेज) और एक लंबा (याद रखने में आसान)।
किसी ने भी किसी भी समय के लिए लिनक्स शैल का उपयोग किया है , इस शैली 1 से परिचित होना चाहिए , इसलिए इसके पक्ष में कम से कम आश्चर्य का सिद्धांत है। लंबे विकल्पों के साथ अस्पष्ट होने के बिना कई छोटे विकल्पों का समूहन भी अच्छा है।
1 उदाहरण के लिए, (मेरी Linux मशीन पर) इस शैली का प्रयोग कार्यक्रमों में से कुछ: ls
, grep
, man
, sed
, bash
, आदि ( संपादित करें: इन जाहिरा तौर पर जीएनयू-वाद हालांकि, बीएसडी और ओएस एक्स मशीनों इस शैली का उपयोग नहीं करते हैं)
वहाँ कई पुस्तकालयों कि आप के लिए यह पार्स करने की देखभाल कर सकते हैं (सबसे प्रसिद्ध जा रहा है जीएनयू के कार्यान्वयन की getopt ), केवल क्या लंबी और छोटी विकल्प मौजूद हैं, चाहे वे एक तर्क लेते हैं, और क्या है जब एक करने के लिए निर्दिष्ट करने के लिए आप की आवश्यकता होगी, विकल्प मिल गया है। (और निश्चित रूप से, स्थितिगत तर्कों के लिए क्या करना है, अर्थात जो शुरू -
नहीं होते हैं और पिछले विकल्पों के लिए तर्क नहीं हैं)
find
एक बहुत पुराना कार्यक्रम है (या शायद अधिक संभावना है: एक बहुत पुराने कार्यक्रम का पुनर्लेखन संस्करण) जिसे एक नई कमांड लाइन सिंटैक्स का उपयोग करने के लिए आसानी से नहीं बदला जा सकता है। बहुत सी स्क्रिप्ट्स टूट जाएंगी, और पुराने सिंटैक्स के लिए उपयोग किए जाने वाले कई उपयोगकर्ता शिकायत करेंगे। javac
संभावित रूप से gcc
और दोस्तों से प्रभावित था , जो ऐतिहासिक कारणों से एक पुराने वाक्यविन्यास का पालन करते हैं।