Bagaimana cara menyatukan string dalam skrip bash?

21

Bagaimana saya bisa menggabungkan string dan variabel dalam skrip shell?

stringOne = "foo"

stringTwo = "anythingButBar"

stringThree = "? and?"

Saya ingin menampilkan "foo and anythingButBar"

Moshe
sumber

Jawaban:

29

Tidak ada yang istimewa, Anda hanya perlu menambahkannya ke deklarasi Anda.

sebagai contoh:

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

jika Anda ingin kata literal 'dan' di antara mereka:

[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
Zypher
sumber
4
Jika saya mungkin memberikan saran, permintaan Anda berisik dan mengaburkan jawaban Anda (dan spasi setelah tanda dolar akan membantu keterbacaan). Sesuatu seperti $ stringOne="foo", misalnya. Selain itu, prompt tidak akan muncul di jalur keluaran (baris setelah gema). Kalau tidak +1.
Dijeda sampai pemberitahuan lebih lanjut.
10
echo ${stringOne}and${stringTwo}jika Anda tidak ingin spasi
maks taldykin
Anda juga bisa melakukannya stringThree=$stringOne" and "$stringTwo.
Armfoot
5

Jika sebaliknya Anda memiliki:

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

Anda bisa melakukan:

$ printf "$stringThree\n" "$stringOne" "$stringTwo"
foo and anythingButBar
Mikel
sumber