ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

Bash Heredoc

Объединение строк может быть важной частью использования любого языка программирования для практических приложений.

Вы также можете объединять строки в bash. Здесь нет оператора конкатенации. Просто напишите строки одну за другой, чтобы соединить строки в Bash.

concat_string="$str1$str2"

 

Не волнуйтесь! Мы покажем вам различные реальные примеры объединения строк в bash.

 

Назначение составных строк

В Bash нет таких типов данных, как в большинстве языков программирования. Но вы все равно можете объявлять переменные в Bash.

Вот как вы назначаете строки в Bash :

andreyex@Destroyer:~$ w='Добро пожаловать'

 

Вы можете использовать команду printf для вывода значения этой строковой переменной:

andreyex@Destroyer:~$ printf "$w\n"
Добро пожаловать

 

Создадим еще несколько строк:

andreyex@Destroyer:~$ t='в'
andreyex@Destroyer:~$ l='блог'
andreyex@Destroyer:~$ h='AndreyEx!'

 

Мы хотим объединить все эти строковые переменные в одну. Как это сделать?

andreyex@Destroyer:~$ maxim="${w} ${t} ${l} ${h}"

 

Таким образом мы объединили все четыре строки в одну переменную и назвал ее tony. Обратите внимание, что мы добавили пробел между переменными.

Давайте быстро подтвердим, что строки были объединены:

andreyex@Destroyer:~$ printf "$maxim\n"
Добро пожаловать в блог AndreyEx!

 

Вот все это в сценарии Bash:

#!/bin/bash
w='Добро пожаловать'
t='в'
l='блог'
h='AndreyEx'
tony="${w} ${t} ${l} ${h}"
printf "${tux}\n"

 

Сделайте его исполняемым и запустите как скрипт:

andreyex@Destroyer:~$ chmod +x concat.sh
andreyex@Destroyer:~$ ./concat.sh
Добро пожаловать в блог AndreyEx!
Фигурные скобки {} вокруг имен переменных не являются обязательными при объединении строк. Однако, чтобы прояснить ситуацию и защитить ее от окружающих символов, рекомендуется заключить их в {}.

Добавить в строку в bash

В приведенном выше примере разные строки объединены в одну.

Возьмем другой сценарий. Скажем, вы хотите добавить к уже существующей строке. Как это сделать? Вы используете замечательный оператор + =.

str="iron"
str+="man"

 

Вы можете угадать новое значение str? Да! Это так ironman.

andreyex@Destroyer:~$ str="iron"
andreyex@Destroyer:~$ str+="man"
andreyex@Destroyer:~$ echo $str
ironman

 

Это полезно, когда вы используете циклы в bash. Возьмем, к примеру, этот цикл for:

#!/bin/bash

var=""
for color in 'Black' 'White' 'Brown' 'Yellow'; do
  var+="${color} "
done

echo "$var"

 

Если вы запустите приведенный выше сценарий, он будет добавляться к строке после каждой итерации.

Black White Brown Yellow

 

Объединение чисел и строк

Как мы упоминали ранее, в Bash нет типов данных. Строки и целые числа одинаковы, поэтому их можно легко объединить в одну строку.

Давайте посмотрим на другой пример с помощью второго скрипта. На этот раз мы будем использовать номер:

#!/bin/bash
we='Вы'
lv='мои'
y='ангелы'
morgan=3000
stark="${we} ${lv} ${y} ${morgan}!!!"
printf "${stark}\n"

 

Исполнение:

andreyex@Destroyer:~$ chmod +x morgan.sh
andreyex@Destroyer:~$ ./morgan.sh
Вы мои ангелы 3000!!!

 

Вложенная конкатенация строк

Вы также можете сохранить эти две сцепленные строки внутри третьей посредством вложенной конкатенации:

#!/bin/bash
w='Добро пожаловать'
t='To'
l='Linux'
h='AndreyEx'
tony="${w} ${t} ${l} ${h}"
we='We'
lv='Love'
y='You'
morgan=3000
stark="${we} ${lv} ${y} ${morgan}!!!"
ironman="${tony}..${stark}"
printf "${ironman} Forever!\n"

 

Когда вы запустите этот сценарий оболочки , вы увидите следующий вывод:

Добро пожаловать в блог AndreyEx..Мы Любим Тебя 3000!!! Forever!

 

Заключение

Мы надеемся, что эта небольшая статья помогло вам объединить строки bash. Если у вас есть вопросы или предложения, не стесняйтесь оставлять комментарии ниже.

Exit mobile version