35

Как объединить строковые переменные в Bash

47

На PHP строки объединяются следующим образом:

$foo = "Hello";
$foo .= " World";

В результате переменная $foo становится равной "Hello World".

Как можно достичь такого же результата в Bash?

4 ответ(ов)

48

Чтобы объединить две переменные в Bash, вы можете просто записать их одну за другой. Например:

foo="Hello"
foo="${foo} World"
echo "${foo}"

Этот код выведет:

Hello World

В общем случае, для конкатенации двух переменных используйте следующий синтаксис:

a='Hello'
b='World'
c="${a} ${b}"
echo "${c}"

Результат выполнения этого кода будет таким же:

Hello World

Таким образом, правильно объединять строки можно при помощи фигурных скобок и пробела между ними для разделения.

13

В Bash также поддерживается оператор +=, как показано в следующем коде:

A="X Y"
A+=" Z"
echo "$A"

Вывод будет:

X Y Z

Этот код сначала инициализирует переменную A строкой "X Y", а затем добавляет к ней строку " Z" с помощью оператора +=. В результате при выводе переменной A мы получаем строку X Y Z.

1

Да, вы можете сделать это следующим образом:

$ var="myscript"

$ echo $var
myscript

$ var=${var}.sh

$ echo $var
myscript.sh

В этом примере мы сначала создаем переменную var и присваиваем ей значение "myscript". Затем мы выводим значение переменной с помощью команды echo. Далее мы добавляем к переменной .sh, используя синтаксис ${var}.sh, и снова выводим значение переменной, которая теперь равна "myscript.sh".

1

В приведенном вами примере:

bla=hello
laber=kthx
echo "${bla}ohai${laber}bye"

будет выводить:

helloohaikthxbye

Это полезно, когда

$blaohai

вызывает ошибку "переменная не найдена" (variable not found). Или если в ваших строках есть пробелы или другие специальные символы. Использование "${foo}" правильно экранирует всё, что вы вставляете в него.

Таким образом, использование фигурных скобок {} помогает избежать неоднозначностей и обеспечивает правильное объединение строк.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь