bagaimana cara menyatukan variabel string menjadi sepertiga?

36

Saya perlu menyatukan dua string dalam bash, sehingga:

string1=hello
string2=world

mystring=string1+string2

echo mystring harus menghasilkan

Halo Dunia

michelemarcon
sumber
Perintah terminal joinjuga dapat melakukan hal itu untuk Anda.
Léo Léopold Hertz 준영

Jawaban:

38

cukup menyatukan variabel:

mystring="$string1$string2"
SiegeX
sumber
51

Anda tidak perlu menggunakan {} kecuali Anda akan menggunakan parameter variabel bash atau segera menambahkan karakter yang akan valid sebagai bagian dari pengidentifikasi. Anda juga tidak perlu menggunakan tanda kutip ganda kecuali jika parameter Anda akan menyertakan karakter khusus.

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"
khamer
sumber
2
Inilah yang saya cari [z = "$ xand $ y" # tidak berfungsi ..... z = "$ {x} dan $ y" # tidak berfungsi, "fooandbar"]. Terima kasih.
Bercanda
18

Jika Anda perlu menggabungkan variabel dengan string literal:

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

echo $mystring akan menghasilkan:

beberapa halo dunia sembarang teks

phhehehe
sumber
6
Anda dapat menggunakan ${var}format kapan saja Anda suka, tetapi Anda hanya memerlukannya ketika $varharus segera diikuti oleh karakter nama variabel lain yang valid ... misalnya: $vararbitaryakan menafsirkan variabel bernama "vararbitary", tetapi Anda dapat mengatasinya dengan menggunakan ${var}arbitary.... oops, saya baru saja melihat khamer abswer .. tetapi saya mungkin juga meninggalkan komentar di sini.
Peter.O
11

Jika Anda ingin menggabungkan banyak variabel, Anda juga dapat menggunakan +=untuk menambahkan string .. Ini dapat meningkatkan keterbacaan ..

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

Seperti disebutkan oleh jawaban lain, {} tidak diperlukan di sini, tetapi saya pribadi selalu menggunakannya untuk menghindari beberapa kesalahan sintaksis.

+=juga dapat digunakan untuk menambahkan nilai ke array: array+=($b).

mariux
sumber