2012-09-13 8 views
7

$* का वास्तव में एक शेल स्क्रिप्ट में क्या मतलब है?

उदाहरण के लिए पर विचार निम्नलिखित कोड का टुकड़ा

$JAVA_HOME/bin/java/com/test/Testclass $* 
+1

http पारित कर दिया तर्क की संख्या: // tldp .org/एलडीपी/abs/html/internalvariables.html # ARGLIST – alfasin

+0

कमांड लाइन से सभी पोजिशनल पैरामीटर कॉलिंग स्क्रिप्ट: http://tldp.org/LDP/abs/html/internalvariables.html#APPREF – GreenMatt

+0

POSIX पर आधारित दस्तावेज़ विशेष रूप से उपयोगी होते हैं क्योंकि वे केवल बैश से अधिक पर लागू होते हैं: http://pubs.opengroup.org/ ऑनलाइन पब्स/9 6 99 99 1 9 7 9/यूटिलिटीज/वी 3_चैप 022.html # टैग_18_05_02 –

उत्तर

7

इसका मतलब है कि शब्द द्वारा विभाजित स्क्रिप्ट या फ़ंक्शन को पारित सभी तर्क।

यह आमतौर पर गलत है और इसे "[email protected]" द्वारा प्रतिस्थापित किया जाना चाहिए, जो तर्कों को ठीक से अलग करता है।

+3

खैर, @ ДМИТРИЙ МАЛИКОВ (दिमित्री?) पहले ही समझाया गया है कि $ * को शुरुआत में एक स्ट्रिंग के रूप में कैसे बनाया जाता है। यहां महत्वपूर्ण बात यह है कि बाद में इसे शैल के सामान्य शब्द विभाजन के अधीन किया जाता है, * जब तक * इसे उद्धृत नहीं किया जाता है। "$ *" यह सुनिश्चित करेगा कि तर्क अभी भी एक एकल, लंबी स्ट्रिंग के रूप में संसाधित किया गया है। "$ @" तर्क सूची को उद्धृत तारों की सरणी के रूप में संसाधित करने के लिए मजबूर करता है। प्रत्येक का इसका उपयोग होता है, और अंतर जानने के लिए महत्वपूर्ण है। –

6

यह अपने आप से जवाब खोजने के लिए आसान है: विशेष रूप से

विशेष पैरामीटर

खोल व्यवहार करता है कई मापदंडों: man bash/\$\* । इन पैरामीटर का संदर्भ केवल तभी किया जा सकता है; उन्हें असाइनमेंट की अनुमति नहीं है।

  • स्थितीय मापदंडों के विस्तार, एक से शुरू। जब विस्तार डबल कोट्स के भीतर होता है, तो यह IFS विशेष चर के पहले वर्ण से अलग प्रत्येक पैरामीटर के मान के साथ एक शब्द तक फैलता है। यही है, "$*""$1c$2c..." के बराबर है, जहां cIFS चर के मान का पहला अक्षर है। यदि IFS अनसेट है, पैरामीटर रिक्त स्थान से अलग होते हैं। यदि IFS शून्य है, तो पैरामीटर विभाजक हस्तक्षेप किए बिना शामिल हो जाते हैं।
1

$* उस शेल स्क्रिप्ट को पारित किए गए सभी मानकों तक फैलता है।

$0 = खोल स्क्रिप्ट का नाम

$1 = पहला तर्क

$2 = दूसरा तर्क ... आदि

$# = shellscript को

संबंधित मुद्दे