Как объединить строки в скрипте 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

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.