नोट: मेरा उत्तर ओपी के मामले में मान्य नहीं है, और केवल नीचे उल्लिखित कन्वेंशन के बाद टूल पर लागू होता है, न कि सिर्फ -
(डैश) नामक एक फ़ाइल के मामले में , जो अक्सर मानक से पढ़ने को निर्दिष्ट करने के लिए एक विशेष मामला है। इनपुट अपेक्षित है स्वीकृत उत्तर देखें।
इसे यहां छोड़ते हुए क्योंकि इसमें अन्य मामलों के लिए उपयोगी जानकारी है जो उत्तर खोजते समय ठोकर खा सकते हैं।
डबल-डैश यह!
--
अंतिम तर्क को इंगित करने के लिए मानक डबल-डैश ( ) कन्वेंशन का उपयोग करें :
less -- -FILENAME
उदाहरण
$ echo "meh" > -badname
$ less -badname
Number is required after -b
$ less -- -badname # GREAT SUCCESS!
Whhhaattt?
यह --
तर्क शेल उपयोगिताओं और कमांड-लाइन टूल के अधिकांश कार्यान्वयनों द्वारा समर्थित एक कन्वेंशन से उपजा है, और अधिकांश शेल स्पष्ट रूप से वकालत करेंगे कि आपको सीएलआई टूल्स को लागू करते समय इसका पालन करना चाहिए।
ओपन ग्रुप द्वारा अनुशंसित
ओपनग्रुप ने इसके बेस स्पेसिफिकेशन के उपयोगिता विवरण डिफॉल्ट्स (v6) अनुभाग में भी इसका उल्लेख किया है :
डिफ़ॉल्ट व्यवहार: [...] मानक उपयोगिताओं जो विकल्पों को स्वीकार नहीं करती हैं, लेकिन जो ऑपरेंड स्वीकार करते हैं, वे "-" को पहले तर्क के रूप में खारिज कर दिया जाएगा।
"-" को पहचानने की आवश्यकता इसलिए है क्योंकि अनुरूपण अनुप्रयोगों को अपने ऑपरेंड को किसी भी मनमाने विकल्प से ढालने की आवश्यकता होती है जिसे कार्यान्वयन एक विस्तार के रूप में प्रदान कर सकता है। उदाहरण के लिए, यदि मानक उपयोगिता फू को कोई विकल्प नहीं के रूप में सूचीबद्ध किया गया है, और एप्लिकेशन को इसे एक अग्रणी हाइफ़न के साथ एक मार्गनाम देने की आवश्यकता है, तो वह इसे सुरक्षित रूप से कर सकता है:
foo -- -myfile
और एक्सटेंशन के रूप में इस्तेमाल होने वाली एम के साथ किसी भी समस्या से बचें।
और उपयोगिता सिंटैक्स दिशानिर्देश (v7) में:
दिशानिर्देश 10:
पहला - तर्क जो विकल्प-तर्क नहीं है, उसे विकल्प के अंत का संकेत देने वाले परिसीमन के रूप में स्वीकार किया जाना चाहिए। किसी भी निम्नलिखित तर्क को ऑपरेंड के रूप में माना जाना चाहिए, भले ही वे '-' चरित्र से शुरू हों।
बैश द्वारा अनुशंसित
यहाँ, बैश मैनुअल से इसके अंशों के बारे में बताया गया है, जो इसका समर्थन करते हैं:
जब तक अन्यथा उल्लेख नहीं किया जाता है, तब तक प्रत्येक अंतर्निहित आदेश इस खंड में प्रलेखित विकल्पों को स्वीकार करने से पहले स्वीकार करता है - विकल्पों को समाप्त करने के लिए।
:, सत्य, असत्य, और परीक्षण निर्मित विकल्प स्वीकार नहीं करते हैं और न ही उपचार करते हैं - विशेष रूप से। एक्ज़िट, लॉगआउट, ब्रेक, जारी, लेट, और शिफ्ट बिलिन स्वीकार करते हैं और प्रक्रिया की दलीलों को शुरू करते हैं - बिना आवश्यकता के -। अन्य बिल्डिंस जो तर्कों को स्वीकार करते हैं, लेकिन विकल्प को स्वीकार करने के रूप में निर्दिष्ट नहीं किए जाते हैं, इस व्याख्या को रोकने के लिए - अवैध विकल्पों के रूप में शुरू होने वाले तर्कों की आवश्यकता होती है।
ध्यान दें कि गूंज व्याख्या नहीं करता है - विकल्पों के अंत का मतलब है।
अतिरिक्त पढ़ना