Você não precisa usar {}, a menos que use parâmetros da variável bash ou adicione imediatamente um caractere que seria válido como parte do identificador. Você também não precisa usar aspas duplas, a menos que os parâmetros incluam caracteres especiais.
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"
Você pode usar o ${var}formato a qualquer momento, mas só precisa dele quando $varfor imediatamente seguido por outro caractere válido de nome de variável ... por exemplo: $vararbitaryinterpretará uma variável chamada "vararbitary", mas poderá contorná-la usando ${var}arbitary.... opa, eu acabei de ver a resposta de khamer .. mas também posso deixar o comentário aqui.
Peter.O
11
Se você deseja concatenar muitas variáveis, também pode usar +=para anexar strings. Isso pode aumentar a legibilidade.
join
também pode fazer a coisa por você.Respostas:
simplesmente concatene as variáveis:
fonte
Você não precisa usar {}, a menos que use parâmetros da variável bash ou adicione imediatamente um caractere que seria válido como parte do identificador. Você também não precisa usar aspas duplas, a menos que os parâmetros incluam caracteres especiais.
fonte
Caso você precise concatenar variáveis com cadeias literais:
echo $mystring
vai produzir:fonte
${var}
formato a qualquer momento, mas só precisa dele quando$var
for imediatamente seguido por outro caractere válido de nome de variável ... por exemplo:$vararbitary
interpretará uma variável chamada "vararbitary", mas poderá contorná-la usando${var}arbitary
.... opa, eu acabei de ver a resposta de khamer .. mas também posso deixar o comentário aqui.Se você deseja concatenar muitas variáveis, também pode usar
+=
para anexar strings. Isso pode aumentar a legibilidade.Conforme mencionado por outras respostas, os {} não são necessários aqui, mas eu sempre os uso pessoalmente para evitar alguns erros de sintaxe.
+=
também pode ser usado para acrescentar valores para matrizes:array+=($b)
.fonte