Как объединить строки в скрипте bash?

21

Как я могу объединить строки и переменные в сценарии оболочки?

stringOne = "foo"

stringTwo = "everythingButBar"

stringThree = "? и?"

Я хочу вывести "foo и что-нибудьButBar"

Моше
источник

Ответы:

29

Ничего особенного, вам просто нужно добавить их в вашу декларацию.

например:

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

если вы хотите буквальное слово «и» между ними:

[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
источник
4
Если я могу сделать предложение, ваша подсказка зашумит и затеняет ваш ответ (и пробел после знака доллара будет способствовать удобочитаемости). Нечто подобное $ stringOne="foo", например. Кроме того, подсказка не должна появляться в строке вывода (строки после эха). В противном случае +1.
Приостановлено до дальнейшего уведомления.
10
echo ${stringOne}and${stringTwo}если вы не хотите пробелов
Макс Талдыкин
Вы также можете сделать stringThree=$stringOne" and "$stringTwo.
Armfoot
5

Если вместо этого у вас было:

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

Вы могли бы сделать:

$ printf "$stringThree\n" "$stringOne" "$stringTwo"
foo and anythingButBar
Mikel
источник