Làm cách nào để nối chuỗi trong tập lệnh bash?


21

Làm cách nào tôi có thể nối chuỗi và biến trong tập lệnh shell?

chuỗiOne = "foo"

chuỗiTwo = "anythingButBar"

chuỗiThree = "? và?"

Tôi muốn xuất "foo và anythingButBar"

Câu trả lời:


29

Không có gì đặc biệt, bạn chỉ cần thêm chúng vào khai báo của bạn.

ví dụ:

[Zypher@host01 monitor]$ stringOne="foo"
[Zypher@host01 monitor]$ stringTwo="anythingButBar"
[Zypher@host01 monitor]$ stringThree=$stringOne$stringTwo
[Zypher@host01 monitor]$ echo $stringThree 
fooanythingButBar

nếu bạn muốn từ theo nghĩa đen 'và' giữa chúng:

[Zypher@host01 monitor]$ stringOne="foo"
[Zypher@host01 monitor]$ stringTwo="anythingButBar"
[Zypher@host01 monitor]$ stringThree="$stringOne and $stringTwo"
[Zypher@host01 monitor]$ echo $stringThree 
foo and anythingButBar

4
Nếu tôi có thể đưa ra một gợi ý, lời nhắc của bạn sẽ gây ồn ào và che khuất câu trả lời của bạn (và một khoảng trắng sau ký hiệu đô la sẽ giúp dễ đọc). Một cái gì đó như $ stringOne="foo", ví dụ. Ngoài ra, lời nhắc không nên xuất hiện trên một dòng đầu ra (các dòng sau tiếng vang). Nếu không +1.
Tạm dừng cho đến khi có thông báo mới.

10
echo ${stringOne}and${stringTwo}nếu bạn không muốn có không gian
max taldykin

Bạn cũng có thể làm stringThree=$stringOne" and "$stringTwo.
Armfoot

5

Nếu thay vào đó bạn đã có:

stringOne="foo"
stringTwo="anythingButBar"
stringThree="%s and %s"

bạn có thể làm:

$ printf "$stringThree\n" "$stringOne" "$stringTwo"
foo and anythingButBar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.