comment concaténer des variables de chaîne dans un troisième?


36

Je dois concaténer deux chaînes dans bash, de sorte que:

string1=hello
string2=world

mystring=string1+string2

echo mystring devrait produire

Bonjour le monde


La commande de terminal joinpourrait également faire la chose pour vous.
— Léo Léopold Hertz 준영

Réponses:


38

simplement concaténer les variables:

mystring="$string1$string2"

51

Vous n'avez pas besoin d'utiliser {} sauf si vous allez utiliser les paramètres de variable bash ou ajouter immédiatement un caractère qui ferait partie de l'identifiant. De plus, vous n'avez pas besoin d'utiliser les guillemets, à moins que vos paramètres incluent des caractères spéciaux.

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"

2
C'est ce que je cherchais [z = "$ xand $ y" # ne fonctionne pas ..... z = "$ {x} et $ y" # fonctionne, "fooandbar"]. Merci.
— Blairish

18

Au cas où vous auriez besoin de concaténer des variables avec des chaînes littérales:

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

echo $mystring produira:

un peu de bonjour texte arbitraire du monde


6
Vous pouvez utiliser le ${var}format à tout moment, mais vous en avez besoin uniquement quand il $vardoit être immédiatement suivi d'un autre caractère de nom de variable valide ... par exemple: $vararbitaryinterprétera une variable nommée "vararbitary" ${var}arbitary... oups, je viens de voir l'abswer de khamer ... mais je peux tout aussi bien laisser le commentaire ici.
— Peter.O

11

Si vous souhaitez concaténer un grand nombre de variables, vous pouvez également utiliser +=pour ajouter des chaînes. Cela peut augmenter la lisibilité.

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

Comme mentionné dans d'autres réponses, les {} ne sont pas nécessaires ici, mais personnellement, je les utilise toujours pour éviter certaines erreurs de syntaxe.

+=peut également être utilisé pour ajouter des valeurs aux tableaux: array+=($b).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.