इन शर्तों के बीच अंतर क्या हैं: "विकल्प", "तर्क", और "पैरामीटर"? मैन पेजों में इन शब्दों को अक्सर एक दूसरे के लिए इस्तेमाल किया जाने लगते हैं।शर्तों के बीच अंतर: "विकल्प", "तर्क", और "पैरामीटर"?
उत्तर
ए कमांडतर्क नामक तारों की एक सरणी में विभाजित है। तर्क 0 (सामान्यतः) कमांड नाम, तर्क 1, कमांड के बाद पहला तत्व है, और इसी तरह।
$ ls -la /tmp /var/tmp
arg0 = ls
arg1 = -la
arg2 = /tmp
arg3 = /var/tmp
एक विकल्प की तर्क एक दस्तावेज प्रकार एक आदेश, उदा के व्यवहार को संशोधित है -l
आमतौर पर "लंबा", -v
वर्बोज़ का अर्थ है। -lv
दो विकल्प एकल तर्क में संयुक्त विकल्प हैं। --verbose
जैसे लंबे विकल्प भी हैं। जैसा कि उनके नाम से पता चलता है, विकल्प आमतौर पर वैकल्पिक होते हैं। हालांकि विरोधाभासी "अनिवार्य विकल्प" के साथ कुछ आदेश हैं।
$ ls -la /tmp /var/tmp
option1= -l
option2= -a
एक पैरामीटर एक तर्क है कि या तो आदेश या उसके विकल्पों, उदा से एक के लिए जानकारी प्रदान करता है है -o file
, फ़ाइल-o
विकल्प का पैरामीटर है। उन विकल्पों के विपरीत जो संभावित मूल्यों को प्रोग्राम में कड़ी कोडित किया जाता है, पैरामीटर आम तौर पर नहीं होते हैं, इसलिए उपयोगकर्ता जो कुछ भी स्ट्रिंग को उसकी जरूरतों के अनुरूप उपयोग करने के लिए स्वतंत्र होता है। यदि आपको एक विकल्प की तरह दिखने वाले पैरामीटर को पास करने की आवश्यकता है, लेकिन इस तरह व्याख्या नहीं की जानी चाहिए, तो आप इसे डबल डैश के साथ कमांड लाइन की शुरुआत से अलग कर सकते हैं: --
।
$ ls -la /tmp /var/tmp
parameter1= /tmp
parameter2= /var/tmp
$ ls -l -- -a
option1 = -l
parameter1 = -a
अंत में, subcommands, यह भी कार्य/(निम्न स्तर) के रूप में जाना आदेश है, जो "metacommands" है कि अधिक अलग-अलग आदेशों एम्बेड करते हैं, busybox
की तरह, git
, apt-get
, openssl
के साथ किया जाता है, और पसंद। उनके साथ, आपके पास उप-आदेश से पहले वैश्विक विकल्प हो सकते हैं, और सबकॉमैंड का पालन करने वाले उप-आदेश विशिष्ट विकल्प हो सकते हैं। पैरामीटर के विपरीत, संभावित उपसमूहों की सूची कमांड में हार्डकोड की जाती है। उदाहरण के लिए:
$ busybox ls -l
command = busybox
subcommand = ls
subcommand option1 = -l
$ git --git-dir=a.git --work-tree=b -C c status -s
command = git
command option1 = --git-dir=a.git
command option2 = --work-tree=b
command option3 = -C
subcommand = status
subcommand option1 = -s
ध्यान दें कि test
, tar
, dd
और find
की तरह कुछ आदेश से लोगों को पहले बताए और अधिक जटिल तर्क पार्स वाक्य रचना है और कुछ या उनके तर्कों के रूप में expressions
, operands
, keys
और इसी तरह के पार्स के सभी हो सकता है कमांड विशिष्ट घटकों।
उत्कृष्ट उत्तर –
@jlliagre क्या "हार्डकोडेड वेरिएबल" पैरामीटर के रूप में भी जाना जाता है? जैसे फ़ाइल के लिए कुछ पथ, जिसे आप तर्क के रूप में पास नहीं करते हैं, लेकिन 'VARNAME = "VALUE" सिंटैक्स का उपयोग करके बैश स्क्रिप्ट के अंदर बनाते हैं। यदि नहीं (यानी VARNAME पैरामीटर नहीं है), तो पैरामीटर विस्तार की अवधारणा हार्डकोडेड चर पर भी लागू क्यों होती है? – user1534664
@ user1534664 मैंने इन वैकल्पिक चर असाइनमेंट को मेरे उत्तर के दायरे से बाहर छोड़ा क्योंकि वे निष्पादित कमांड द्वारा तर्क के रूप में नहीं देखे जाते हैं। मैंने एक ही कारण के लिए खाते में पुनर्निर्देशन नहीं लिया है, लेकिन आप सही हैं कि शेल दुभाषिया के दृष्टिकोण से, ये असाइनमेंट टिल्ड विस्तार, पैरामीटर विस्तार, कमांड प्रतिस्थापन, अंकगणितीय विस्तार, और अन्य पैरामीटर जैसे उद्धरण हटाने के लिए प्रीप्रोसेस्ड हैं। – jlliagre
man
एक विशिष्ट यूनिक्स कमांड के लिए पृष्ठ अक्सर argument
, option
और parameter
का उपयोग करता है। निम्नतम स्तर पर, हमारे पास argument
है और सबकुछ एक तर्क है, जिसमें (फाइल सिस्टम पावर) कमांड भी शामिल है।
एक शैल स्क्रिप्ट में आप विशेष चर $0
.. $n
का उपयोग करके तर्कों तक पहुंचते हैं। अन्य भाषाओं में उन तक पहुंचने के समान तरीके हैं (आमतौर पर argv
जैसे नाम वाले सरणी के माध्यम से)।
यदि आप चाहें तो विकल्प के रूप में तर्कों का अर्थ लिया जा सकता है। यह कैसे किया जाता है कार्यान्वयन-विशिष्ट है। आप या तो एक खोल की जांच के लिए अपना खुद का रोल कर सकते हैं (जैसे bash
) स्क्रिप्ट getopts
या getopt
आदेश प्रदान कर सकते हैं।
ये आम तौर पर एक बहस एक हाइफन (-
) और कुछ विकल्प अपने पैरामीटर के रूप में आगे बढ़ने से तर्क का उपयोग कर सकते के साथ शुरुआत के रूप में एक विकल्प परिभाषित करते हैं। अधिक सक्षम पार्सर्स (उदा। getopt
) मिश्रण शॉर्ट-फॉर्म (-h
) और लंबे प्रारूप (--help
) विकल्पों का समर्थन करते हैं।
आमतौर पर, अधिकतर विकल्प शून्य या एक पैरामीटर लेते हैं। ऐसे पैरामीटर को कभी-कभी मान कहा जाता है।
समर्थित विकल्प प्रोग्राम कोड में कोड किए गए हैं (उदाहरण के लिए getopts
के शेल स्क्रिप्ट के भीतर आमंत्रण में)। विकल्प के बाद किसी भी शेष तर्क का उपभोग किया जाता है, जिसे आमतौर पर स्थितित्मक पैरामीटर कहा जाता है जब उन्हें दिया गया क्रम महत्वपूर्ण होता है (यह उन विकल्पों के विपरीत है जो आमतौर पर किसी भी क्रम में दिए जा सकते हैं)।
फिर, स्क्रिप्ट परिभाषित करता है कि स्थितित्मक पैरामीटर यह कैसे खपत करते हैं और उनका उपयोग करते हैं।
तो एक ठेठ आदेश
$ ls -I README -l foo 'bar car' baz
सात तर्क हैं: /usr/bin/ls
, -I
, README
, -l
, foo
, bar car
, और baz
$0
के रूप में सुलभ $6
के माध्यम से। -l
और -I
विकल्पों के रूप में व्याख्या कर रहे हैं, बाद एक पैरामीटर (या मूल्य) README
की हो रही है। स्थितित्मक पैरामीटर (foo
, bar car
और baz
) क्या हैं।
विकल्प पार्स उन खपत को हटाने (उदाहरण, shift
या set
का प्रयोग करके) ताकि केवल स्थितीय मापदंडों बनी रहती है और के रूप में $1
.. $n
उसके बाद से सुलभ हैं द्वारा तर्क सूची बदल सकता है।
- 1. पैरामीटर और तर्क के बीच अंतर
- 2. एंड्रॉइड शर्तों के बीच अंतर?
- 3. `var विकल्प = विकल्प || के बीच अंतर {} `और` विकल्प || (विकल्प = {}) `
- 4. शक्तियों में पैरामीटर और तर्क के बीच क्या अंतर है?
- 5. "फॉर्मेटर" और "सीरिएलाइज़र" - शर्तों के बीच कोई अंतर?
- 6. पैरामीटर परिभाषाओं के बीच अंतर (प्रकार और नाम), और (प्रकार * नाम) के बीच अंतर क्या हैं?
- 7. AJAX के बीच अंतर और
- 8. प्रोग्राम तर्क और वीएम तर्कों के बीच क्या अंतर है?
- 9. (शून्य *) और (शून्य (*) (तर्क प्रकार)) के बीच क्या अंतर है?
- 10. एंड्रॉइड में संदर्भ मेनू और विकल्प मेनू के बीच अंतर
- 11. या तो और विकल्प के बीच अंतर क्या हैं?
- 12. लॉजिकल और भौतिक कॉन्स्टेस के बीच अंतर
- 13. सहयोगी और योगदानकर्ता के बीच अंतर
- 14. "। +" और "। +?" के बीच अंतर
- 15. अभिव्यक्ति के बीच क्या अंतर है। वैरिएबल() और अभिव्यक्ति। पैरामीटर()?
- 16. बंद पैरामीटर और 'उपयोग' कीवर्ड के बीच क्या अंतर है?
- 17. यूआरएल पैरामीटर और क्वेरी स्ट्रिंग के बीच क्या अंतर है?
- 18. बाध्य वाइल्डकार्ड और प्रकार पैरामीटर के बीच क्या अंतर है?
- 19. एंड्रॉइड: canvas.drawBitmap और BitmapDrawable.draw के बीच अंतर?
- 20. विकल्प तर्क में वैकल्पिक पैरामीटर के लिए डिफ़ॉल्ट मान
- 21. स्ट्रीमिंग और लाइव स्ट्रीमिंग के बीच अंतर?
- 22. क्या PerForce शब्दावली में "नवीनतम प्राप्त करें" और "चेक-आउट" शर्तों के बीच कोई अंतर है?
- 23. स्ट्रिंग के बीच कोई अंतर है ... तर्क और स्ट्रिंग [] जावा में तर्क?
- 24. -पीथ्रेड और -थथ्रेड के बीच जीसीसी अंतर?
- 25. "% ~ dp0" और "। \" के बीच अंतर?
- 26. CMake: $ {} और के बीच अंतर "$ {}"
- 27. ऑब्जेक्ट और * के बीच अंतर?
- 28. "या" और "||" के बीच अंतर
- 29. $ के बीच अंतर? और PowerShell
- 30. == और मामले के बीच अंतर?
ये शर्तें शैल-विशिष्ट नहीं हैं: किसी भी प्रकार के किसी भी खोल के बिना 'execv'-style syscall को तर्क के रूप में दिए गए शाब्दिक' argv' सरणी में किसी प्रोग्राम के निष्पादन समय में तर्क पारित किए जा सकते हैं। –