Мне нужно объединить две строки в 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
также может сделать это за вас.