tra-loi-cau-hoi-phat-trien-web.com

Làm thế nào để nối các biến chuỗi thành một phần ba?

Tôi cần nối hai chuỗi trong bash, để:

string1=hello
string2=world

mystring=string1+string2

echo mystring nên sản xuất

chào thế giới

39
michelemarcon

chỉ cần nối các biến:

mystring="$string1$string2"
40
SiegeX

Bạn không cần sử dụng {} trừ khi bạn sẽ sử dụng các tham số biến bash hoặc thêm ngay một ký tự có giá trị như một phần của mã định danh. Bạn cũng không cần sử dụng dấu ngoặc kép trừ khi các tham số của bạn sẽ bao gồm các ký tự đặc biệt.

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"
53
khamer

Trong trường hợp bạn cần nối các biến với các chuỗi bằng chữ:

string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"

echo $mystring sẽ sản xuất:

một số xin chào văn bản thế giới tùy ý

19
phunehehe

Nếu bạn muốn nối nhiều biến, bạn cũng có thể sử dụng += Để nối thêm chuỗi .. Điều này có thể làm tăng khả năng đọc ..

mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}

Như đã đề cập bởi các câu trả lời khác, {} không cần thiết ở đây nhưng cá nhân tôi luôn sử dụng chúng để tránh một số lỗi cú pháp.

+= Cũng có thể được sử dụng để nối các giá trị vào mảng: array+=($b).

12
mariux