में किसी सरणी में कमांड लाइन तर्कों को कनवर्ट करें I कमांड-लाइन तर्कों को बैश स्क्रिप्ट सरणी में कैसे परिवर्तित करूं?बैश
मैं इस ले जाना चाहते हैं:
./something.sh arg1 arg2 arg3
और यह
myArray=(arg1 arg2 arg3)
तो
में बदलने का है कि मैं पटकथा में आगे उपयोग के लिए myArray उपयोग कर सकते हैं।
यह पिछले अतः पद करीब आता है, लेकिन कैसे एक सरणी बनाने के लिए में जाने नहीं करता है: How do I parse command line arguments in Bash?
मैं एक नियमित बैश स्क्रिप्ट सरणी में तर्क कन्वर्ट करने के लिए की जरूरत है; मुझे एहसास है कि मैं अन्य भाषाओं का उपयोग कर सकता हूं (उदाहरण के लिए पायथन) लेकिन इसे बाश में करने की ज़रूरत है। मुझे लगता है कि मैं एक "संलग्न" समारोह या कुछ समान खोज रहा हूं?
अद्यतन:
if [ "$#" -eq 0 ]; then
myArray=(defaultarg1 defaultarg2)
else
myArray=("[email protected]")
fi
धन्यवाद! बहुत अच्छा काम करता है! बस पूछने वाले थे कि शून्य तर्कों की जांच कैसे करें और डिफ़ॉल्ट सरणी मान असाइन करें, और $ # इसके लिए पूरी तरह से काम करता है! – Suman
@kojiro सेट का अर्थ क्या है - धन्यवाद – mailzyok
'सेट' आपको दायरे के लिए स्थितित्मक पैरामीटर सेट करने की अनुमति देता है। यह आपको शैल विकल्प सेट करने देता है। आप 'foo' सेट कर सकते हैं, जिसका अर्थ है' $ 1' "foo" तक फैला है, लेकिन यदि आपके पैरामीटर डैश 'सेट' से शुरू होते हैं तो आपको लगता है कि एक शेल विकल्प सेट करना है। डबल-डैश सुनिश्चित करता है कि निम्नलिखित सभी पैरामीटर को सेट करने के लिए स्थितित्मक पैरामीटर के रूप में व्याख्या किया गया है। – kojiro