¿Cómo concateno cadenas en un script bash?

21

¿Cómo puedo concatenar cadenas y variables en un script de shell?

stringOne = "foo"

stringTwo = "anythingButBar"

stringThree = "? y?"

Quiero generar "foo y cualquier cosa pero barra"

Moshe
fuente

Respuestas:

29

Nada especial, solo necesita agregarlos a su declaración.

por ejemplo:

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

si quieres la palabra literal 'y' entre ellos:

[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
fuente
44
Si puedo hacer una sugerencia, su mensaje es ruidoso y oscurece su respuesta (y un espacio después del signo de dólar ayudaría a la legibilidad). Algo como $ stringOne="foo", por ejemplo. Además, el mensaje no debe aparecer en una línea de salida (las líneas después del eco). De lo contrario +1.
Pausado hasta nuevo aviso.
10
echo ${stringOne}and${stringTwo}si no quieres espacios
max taldykin
También puedes hacer stringThree=$stringOne" and "$stringTwo.
Brazo
5

Si en cambio tuviste:

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

Podrías hacerlo:

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