Comment concaténer des chaînes dans un script bash?

21

Comment puis-je concaténer des chaînes et des variables dans un script shell?

stringOne = "foo"

stringTwo = "everythingButBar"

stringThree = "? et?"

Je veux sortir "foo et n'importe quoiButBar"

Moshe
la source

Réponses:

29

Rien de spécial, il vous suffit de les ajouter à votre déclaration.

par exemple:

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

si vous voulez le mot littéral «et» entre eux:

[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
la source
4
Si je peux faire une suggestion, votre invite est bruyante et obscurcit votre réponse (et un espace après le signe dollar faciliterait la lisibilité). Quelque chose comme $ stringOne="foo", par exemple. De plus, l'invite ne doit pas apparaître sur une ligne de sortie (les lignes après les échos). Sinon +1.
pause jusqu'à nouvel ordre.
10
echo ${stringOne}and${stringTwo}si vous ne voulez pas d'espace
max taldykin
Vous pouvez aussi le faire stringThree=$stringOne" and "$stringTwo.
Armfoot
5

Si à la place vous aviez:

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

vous pourriez faire:

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