Necesito concatenar dos cadenas en bash, para que:
string1=hello
string2=world
mystring=string1+string2
echo mystring
debería producir
Hola Mundo
Necesito concatenar dos cadenas en bash, para que:
string1=hello
string2=world
mystring=string1+string2
echo mystring
debería producir
Hola Mundo
Respuestas:
No necesita usar {} a menos que vaya a usar parámetros de variables bash o añada inmediatamente un carácter que sea válido como parte del identificador. Tampoco necesita usar comillas dobles a menos que sus parámetros incluyan caracteres especiales.
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"
En caso de que necesite concatenar variables con cadenas literales:
string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"
echo $mystring
Producirá:
un texto hola mundo arbitrario
${var}
formato cuando lo desee, pero solo lo necesita cuando $var
va a ser seguido inmediatamente por otro carácter válido de nombre de variable ... por ejemplo: $vararbitary
interpretará una variable llamada "vararbitaria", pero puede evitarla usando ${var}arbitary
.... uy, acabo de ver la respuesta de Khamer ... pero también puedo dejar el comentario aquí.
Si desea concatenar muchas variables, también puede usarlas +=
para agregar cadenas. Esto puede aumentar la legibilidad.
mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}
Como se menciona en otras respuestas, las {} no son necesarias aquí, pero personalmente siempre las uso para evitar algunos errores de sintaxis.
+=
también se puede utilizar para añadir valores a arrays: array+=($b)
.
join
también podría hacer lo mismo por usted.