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


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

Jawaban:


38

cukup menyatukan variabel:

mystring="$string1$string2"

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"

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


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).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.