como concatenar variáveis de string em um terceiro?

31

Eu preciso concatenar duas strings no bash, para que:

string1=hello
string2=world

mystring=string1+string2

echo mystring deve produzir

helloworld

    
por michelemarcon 29.03.2011 / 11:51

4 respostas

34

simplesmente concatene as variáveis:

mystring="$string1$string2"
    
por 29.03.2011 / 11:54
44

Não é necessário usar {}, a menos que você use parâmetros variáveis bash ou adicione um caractere imediato que seria válido como parte do identificador. Você também não precisa usar aspas duplas, a menos que seus 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"
    
por 29.03.2011 / 15:34
15

Caso você precise concatenar variáveis com strings literais:

string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"

echo $mystring produzirá:

some hello arbitrary world text

    
por 29.03.2011 / 12:52
11

Se você quiser concatenar muitas variáveis, você também pode usar += para anexar strings. Isso pode aumentar a legibilidade.

mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}

Como mencionado por outras respostas, o {} não é necessário aqui, mas eu pessoalmente os uso sempre para evitar alguns erros de sintaxe.

+= também pode ser usado para acrescentar valores a matrizes: array+=($b) .

    
por 11.03.2013 / 19:20