Saya perlu menyatukan dua string dalam bash, sehingga:
string1=hello
string2=world
mystring=string1+string2
echo mystring
harus menghasilkan
Halo Dunia
Saya perlu menyatukan dua string dalam bash, sehingga:
string1=hello
string2=world
mystring=string1+string2
echo mystring
harus menghasilkan
Halo Dunia
Jawaban:
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"
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
${var}
format kapan saja Anda suka, tetapi Anda hanya memerlukannya ketika $var
harus segera diikuti oleh karakter nama variabel lain yang valid ... misalnya: $vararbitary
akan 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.
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)
.
join
juga dapat melakukan hal itu untuk Anda.