मुझे बाश में दो तारों को मिलाने की जरूरत है, ताकि:
string1=hello
string2=world
mystring=string1+string2
echo mystring
उत्पादन करना चाहिए
नमस्ते दुनिया
मुझे बाश में दो तारों को मिलाने की जरूरत है, ताकि:
string1=hello
string2=world
mystring=string1+string2
echo mystring
उत्पादन करना चाहिए
नमस्ते दुनिया
जवाबों:
आपको {} का उपयोग करने की आवश्यकता नहीं है, जब तक आप बैश वैरिएबल पैरामीटर्स का उपयोग करने जा रहे हैं या किसी ऐसे चरित्र को तत्काल संलग्न नहीं करेंगे जो पहचानकर्ता के हिस्से के रूप में मान्य होगा। आपको दोहरे उद्धरण चिह्नों का उपयोग करने की आवश्यकता नहीं है जब तक कि आप मापदंडों में विशेष वर्ण शामिल नहीं करेंगे।
x=foo
y=bar
z=$x$y # $z is now "foobar"
z="$x$y" # $z is still "foobar"
z="$xand$y" # does not work
z="${x}and$y" # does work, "fooandbar"
z="$x and $y" # does work, "foo and bar"
मामले में आपको शाब्दिक तार के साथ चर को बदलने की जरूरत है:
string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"
echo $mystring
उत्पादन करेंगे:
कुछ हैलो दुनिया के मनमाने ढंग से पाठ
${var}
किसी भी समय अपने इच्छित प्रारूप का उपयोग कर सकते हैं , लेकिन आपको इसकी आवश्यकता तब होती है जब $var
किसी अन्य मान्य चर-नाम वाले वर्ण का तुरंत अनुसरण किया जाना चाहिए ... उदा: $vararbitary
"वैरबिटरी" नामक एक चर की व्याख्या करेगा, लेकिन आप इसका उपयोग करके इसे प्राप्त कर सकते हैं ${var}arbitary
.... उफ़, मैंने अभी-अभी खमेर का अभिभावक देखा है .. लेकिन मैं यहाँ टिप्पणी छोड़ सकता हूँ।
यदि आप बहुत सारे चर को जोड़ना चाहते हैं, तो आप +=
स्ट्रिंग को जोड़ने के लिए भी उपयोग कर सकते हैं .. इससे पठनीयता बढ़ सकती है।
mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}
जैसा कि अन्य उत्तरों द्वारा उल्लेख किया गया है कि यहां {} की आवश्यकता नहीं है, लेकिन मैं व्यक्तिगत रूप से हमेशा कुछ वाक्यविन्यास त्रुटियों से बचने के लिए उनका उपयोग करता हूं।
+=
मानों को सरणियों में जोड़ने के लिए भी उपयोग किया जा सकता है array+=($b)
:।
join
भी आपके लिए काम कर सकता है।