में फ़ंक्शन तर्क के रूप में रिक्त स्थान के साथ एक स्ट्रिंग पास करना मैं एक बैश स्क्रिप्ट लिख रहा हूं जहां मुझे अपनी बैश स्क्रिप्ट में किसी फ़ंक्शन में रिक्त स्थान वाली स्ट्रिंग को पास करने की आवश्यकता है।बाश
उदाहरण के लिए:
#!/bin/bash
myFunction
{
echo $1
echo $2
echo $3
}
myFunction "firstString" "second string with spaces" "thirdString"
जब चलाने के लिए, उत्पादन मैं उम्मीद थी है: वहाँ एक रास्ता
firstString
second
string
है:
firstString
second string with spaces
thirdString
हालांकि, क्या वास्तव में उत्पादन होता है रिक्त स्थान के साथ स्ट्रिंग को एक फंक्शन में एक फ़ंक्शन के लिए एक तर्क के रूप में पास करने के लिए?
निर्माण चल अंतरिक्ष अलग बहस के लिए ... मैं हालांकि कार्यों के लिए पूर्ण सिंटैक्स का उपयोग करें") {echo $ 1; } ", एक लाइनर में छोटा नहीं बना सकता है। सुनिश्चित नहीं है कि इससे कोई फर्क पड़ता है। बैश का कौन सा संस्करण? – Eugene
" $ @ "में $ @" '' "के लिए 'echo" $ e "' या' कोशिश करें; echo $ i; सही ढंग से उद्धृत पैरामीटर रिक्त स्थान युक्त प्रयोग करने के लिए done'। यह बहुत स्पष्ट रूप से 'स्थितीय parameters' धारा के तहत सभी' bash' दस्तावेज में बताया गया है। – Samveen
मैं एक ऐसी ही समस्या हो रही थी, एक पैरामीटर के रूप एक उद्धृत स्ट्रिंग पारित करने के लिए और कोशिश कर केवल पहले पैरामीटर के हिस्से के रूप में पहचाने जाने वाले स्ट्रिंग का शब्द। $ 1 से $ $ को बदलने के लिए सैवेन के सुझाव ने मेरे लिए काम किया। ध्यान दें कि मैं केवल फ़ंक्शन में एक पैरामीटर पास कर रहा था, लेकिन अगर मैं अधिक कथन का उपयोग कर गुजर रहा होता तो आवश्यक कर दिया गया। –