जवाबों:
अधिक सटीक रूप से, एक डबल डैश ( --) का उपयोग बैश बिल्ट-इन कमांड्स और कई अन्य कमांड्स कमांड ऑप्शंस के अंत को दर्शाने के लिए किया जाता है, जिसके बाद केवल पोजीशनल पैरामीटर स्वीकार किए जाते हैं।
उदाहरण का उपयोग करें: इससे आप स्ट्रिंग के लिए एक फ़ाइल टटोलना चाहते हैं -v- सामान्य रूप -vसे मिलान अर्थ को उलटने का विकल्प माना जाएगा (केवल वे लाइनें जो मेल नहीं खातीं), लेकिन --आप -vइस तरह स्ट्रिंग के लिए grep कर सकते हैं :
grep -- -v file
--में नियमित अभिव्यक्ति से विकल्पों को अलग करने के लिए काम करता है grep, लेकिन विहित तरीका -e/ उपयोग करने के लिए है --regexp।
--, हालांकि आप ध्यान देने योग्य हैं कि ऊपर दिए गए मेरे उदाहरण को भी लिखा जा सकता है grep -e -v file(हालांकि यह बहुत भ्रामक है)।
bashबिलिन कमांड --विकल्प मार्कर के अंत के रूप में स्वीकार नहीं करते हैं । [और echoउदाहरण के लिए ( कारणों में से एक echoमज़बूती से इस्तेमाल नहीं किया जा सकता है ) नहीं है।
शेल शेल कमांड कमांड में man bashहम पढ़ सकते हैं :
जब तक अन्यथा उल्लेख नहीं किया जाता है, प्रत्येक अंतर्निहित कमांड इस खंड में प्रलेखित विकल्प के रूप में स्वीकार किए जाने वाले विकल्पों को स्वीकार करने से पहले
-स्वीकार करता--है ।
:,true,false, औरtestbuiltins विकल्पों को स्वीकार नहीं करते और इलाज नहीं है--विशेष रूप से।exit,logout,break,continue,let, औरshiftbuiltins स्वीकार करते हैं और प्रक्रिया तर्क के साथ शुरुआत-की आवश्यकता के बिना--। अन्य बिल्डिंस जो तर्कों को स्वीकार करते हैं, लेकिन वे विकल्प के रूप में निर्दिष्ट नहीं हैं, जिन्हें स्वीकार करने वाले तर्क-अवैध विकल्पों के रूप में शुरुआत करते हैं और--इस व्याख्या को रोकने की आवश्यकता होती है।ध्यान दें कि विकल्पों के अंत की
echoव्याख्या नहीं करता है--।
man bash(अगली बार के लिए नोट-से-स्व:)।
POSIX.1-2017
12.2 उपयोगिता सिंटेक्स दिशानिर्देश
दिशानिर्देश 10:
पहला
--तर्क जो विकल्प-तर्क नहीं है, उसे विकल्प के अंत का संकेत देने वाले परिसीमन के रूप में स्वीकार किया जाना चाहिए। किसी भी निम्नलिखित तर्क को ऑपरेंड के रूप में माना जाना चाहिए, भले ही वे '-' चरित्र से शुरू हों ।
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02
setबिल्ट-इन, जहां यह बिल्कुल आवश्यक है।