Como concatenar seqüências de caracteres em um script bash?

21

Como concatenar seqüências de caracteres e variáveis ​​em um script de shell?

stringOne = "foo"

stringTwo = "nothingButBar"

stringThree = "? and?"

Eu quero a saída "foo e everythingButBar"

Moshe
fonte

Respostas:

29

Nada de especial, você só precisa adicioná-los à sua declaração.

por exemplo:

[Zypher@host01 monitor]$ stringOne="foo"
[Zypher@host01 monitor]$ stringTwo="anythingButBar"
[Zypher@host01 monitor]$ stringThree=$stringOne$stringTwo
[Zypher@host01 monitor]$ echo $stringThree 
fooanythingButBar

se você quiser a palavra literal 'e' entre eles:

[Zypher@host01 monitor]$ stringOne="foo"
[Zypher@host01 monitor]$ stringTwo="anythingButBar"
[Zypher@host01 monitor]$ stringThree="$stringOne and $stringTwo"
[Zypher@host01 monitor]$ echo $stringThree 
foo and anythingButBar
Zypher
fonte
4
Se eu puder fazer uma sugestão, seu prompt é barulhento e obscurece sua resposta (e um espaço após o cifrão ajudaria a facilitar a leitura). Algo como $ stringOne="foo", por exemplo. Além disso, o prompt não deve aparecer em uma linha de saída (as linhas após o eco). Caso contrário, +1.
Pausado até novo aviso.
10
echo ${stringOne}and${stringTwo}Se você não quiser espaços
taldykin max
Você também pode fazer stringThree=$stringOne" and "$stringTwo.
Armfoot 04/12/2015
5

Se você tivesse:

stringOne="foo"
stringTwo="anythingButBar"
stringThree="%s and %s"

você poderia fazer:

$ printf "$stringThree\n" "$stringOne" "$stringTwo"
foo and anythingButBar
Mikel
fonte