ฉันต้องการเชื่อมสองสายเข้าด้วยกันใน bash ดังนั้น:
string1=hello
string2=world
mystring=string1+string2
echo mystring
ควรผลิต
สวัสดีชาวโลก
ฉันต้องการเชื่อมสองสายเข้าด้วยกันใน bash ดังนั้น:
string1=hello
string2=world
mystring=string1+string2
echo mystring
ควรผลิต
สวัสดีชาวโลก
คำตอบ:
เพียงเชื่อมตัวแปรเข้าด้วยกัน:
mystring="$string1$string2"
คุณไม่จำเป็นต้องใช้ {} เว้นแต่ว่าคุณจะใช้พารามิเตอร์ตัวแปร bash หรือเพิ่มอักขระที่จะใช้ได้ในฐานะส่วนหนึ่งของตัวระบุทันที คุณไม่จำเป็นต้องใช้เครื่องหมายคำพูดคู่เว้นแต่ว่าพารามิเตอร์ของคุณจะมีอักขระพิเศษ
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
จะแปลความหมายตัวแปรชื่อ "vararbitary" แต่คุณสามารถแก้ไขได้โดยใช้${var}arbitary
.... อุ๊ปส์ฉันเพิ่งเห็นผู้ทำเคอร์เมอร์ .. แต่ฉันก็อาจแสดงความคิดเห็นได้ที่นี่
หากคุณต้องการเชื่อมต่อตัวแปรจำนวนมากคุณยังสามารถใช้+=
เพื่อผนวกสตริง .. ซึ่งอาจเพิ่มความสามารถในการอ่าน ..
mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}
ตามที่กล่าวโดยคำตอบอื่น ๆ {} ไม่จำเป็นที่นี่ แต่ฉันมักจะใช้พวกเขาเพื่อหลีกเลี่ยงข้อผิดพลาดทางไวยากรณ์
+=
array+=($b)
นอกจากนี้ยังสามารถใช้ในการผนวกค่าอาร์เรย์:
join
สามารถทำสิ่งนี้ให้คุณได้