Мені потрібно об'єднати два рядки в bash, щоб:
string1=hello
string2=world
mystring=string1+string2
echo mystring
повинні виробляти
Привіт Світ
Мені потрібно об'єднати два рядки в bash, щоб:
string1=hello
string2=world
mystring=string1+string2
echo mystring
повинні виробляти
Привіт Світ
Відповіді:
Вам не потрібно використовувати {}, якщо ви не будете використовувати параметри змінних bash або негайно додати символ, який би був дійсним як частина ідентифікатора. Вам також не потрібно використовувати подвійні лапки, якщо у вас параметри не включатимуть спеціальні символи.
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"
Якщо вам потрібно об'єднати змінні з буквальними рядками:
string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"
echo $mystring
буде виробляти:
якийсь привіт довільний світовий текст
${var}
формат у будь-який час, але вам він потрібен лише тоді, коли $var
за ним слід негайно слідувати інший дійсний символ змінної імені ... наприклад: $vararbitary
інтерпретувати змінну під назвою "vararbitary", але ви можете її обійти за допомогою ${var}arbitary
.... ой, я щойно побачив абсервацію Хамера .. але я також можу залишити коментар тут.
Якщо ви хочете об'єднати багато змінних, ви також можете використовувати +=
для додавання рядків. Це може збільшити читабельність ..
mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}
Як згадується в інших відповідях, {} тут не потрібні, але я особисто завжди їх використовую, щоб уникнути помилок синтаксису.
+=
також може бути використаний для додавання значення в масиви: array+=($b)
.
join
також може зробити для вас річ.