Одной из наиболее часто используемых строковых операций является конкатенация. Конкатенация строк – это просто причудливое программирующее слово для объединения строк путем добавления одной строки в конец другой.
В этой статье мы объясним, как объединять строки в Bash.
Конкатенация строк
Самый простой способ объединить две или более строковые переменные – записать их одну за другой:
VAR1="Hello," VAR2=" World" VAR3="$VAR1$VAR2" echo "$VAR3"
Hello, World
Вы также можете объединить одну или несколько переменных с литеральными строками:
VAR1="Hello," VAR2="${VAR1}World" echo "$VAR2"
Hello, World
В приведенном выше примере переменная VAR1 заключена в фигурные скобки для защиты имени переменной от окружающих символов. Когда за переменной следует другой допустимый символ имени переменной, вы должны заключить его в фигурные скобки ${VAR1}.
Чтобы избежать каких-либо проблем с разделением слов или глобализацией, вы всегда должны пытаться использовать двойные кавычки вокруг имени переменной. Если вы хотите подавить интерполяцию переменных и специальную обработку символа обратной косой черты вместо двойных, используйте одинарные кавычки.
Bash не разделяет переменные по «типу», переменные обрабатываются как целое число или строка в зависимости от контекста. Вы также можете объединить переменные, которые содержат только цифры.
VAR1="Hello, " VAR2=2 VAR3=" Worlds" VAR4="$VAR1$VAR2$VAR3" echo "$VAR4"
Hello, 2 Worlds
Конкатенация строк с оператором + =
Другой способ объединения строк в bash – добавление переменных или литеральных строк к переменной с помощью оператора +=:
VAR1="Hello, " VAR1+=" World" echo "$VAR1"
Hello, World
В следующем примере используется оператора += для объединения строк в цикле bash for :
VAR="" for ELEMENT in 'Hydrogen' 'Helium' 'Lithium' 'Beryllium'; do VAR+="${ELEMENT} " done echo "$VAR"
Hydrogen Helium Lithium Beryllium
Заключение
Конкатенация строковых переменных является одной из самых фундаментальных операций в скриптах Bash. Прочитав эту статью, вы должны хорошо понимать, как объединять строки в Bash.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.