¿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"

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.