2012-08-08 6 views
9

मान लें कि एक स्क्रिप्ट s1 है, और मुझे $1 के साथ foo bar के साथ तर्क के साथ तर्क प्राप्त करने की आवश्यकता है। यह किया जा सकता हैबैश स्क्रिप्ट्स में स्पेस के साथ कमांडलाइन तर्क कैसे पास करें

./s1 "foo बार"

तथापि, जब मैं किसी अन्य लिपि में उपरोक्त आदेश चलाना चाहते हैं (जैसे कि s2), मैं इसे कैसे रखना चाहिए? यदि मैं इसे ऊपर के रूप में रखता हूं, foo bar को एक के बजाय दो तर्क (एस 1) के रूप में व्याख्या किया जाएगा।

उत्तर

15

आप $1 के हवाले से कोशिश कर सकते हैं:

./s2 "$1" 
+0

का उपयोग आप समझा बुरा क्या होगा '' s2'' तरह लग रहा है? मुझे 's2'' पर तर्क पारित करने की आवश्यकता नहीं है, लेकिन' s1'' पर। – Richard

+0

@ रिचर्ड मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं। क्या आप स्पष्ट कर सकते हो ? – cnicutar

-4

कैसे के बारे में:

./s1 foo\ bar 

चाहेंगे कि काम करता है?

+0

यह काम नहीं करता है ... हालांकि – Richard

+1

सुझाव के लिए धन्यवाद। मेरे पास इस पोस्ट पर टिप्पणी करने की क्षमता रखने के लिए पर्याप्त प्रतिष्ठा नहीं थी। मैं अगली बार इसे ध्यान में रखूंगा। – kch

1

सिंगल कोट्स का उपयोग करें।

./script 'this is a line'

विचार करने के लिए चर प्रतिस्थापन दोहरे उद्धरण चिह्नों

./script "this is a line"

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