Одной из наиболее часто используемых операций со строками является конкатенация. Конкатенация строк - это просто модное слово в программировании для соединения строк вместе путем добавления одной строки к концу другой строки.
Конкатенация строк
Самый простой способ объединить две или более строковых переменных - записать их одну за другой:
1 2 3 4 | VAR1="Hello," VAR2=" World" VAR3="$VAR1$VAR2" echo "$VAR3" |
В последней строке будет выведена конкатенированная строка:
1 | Hello, World |
Вы также можете конкатенировать одну или несколько переменных с литеральными строками:
1 2 3 | VAR1="Hello, " VAR2="${VAR1}World" echo "$VAR2" |
1 | Hello, World |
В приведенном примере переменная VAR1 заключена в фигурные скобки для защиты имени переменной от окружающих символов. Когда за переменной следует другой допустимый символ имени переменной, вы должны заключить его в фигурные скобки ${VAR1}.
Во избежание проблем с разделением слов или глобулированием вы всегда должны стараться использовать двойные кавычки вокруг имени переменной. Если вы хотите подавить интерполяцию переменных и специальную обработку символа обратной косой черты, вместо двойных используйте одинарные кавычки.
Bash не разделяет переменные по "типу", переменные рассматриваются как целое число или строка в зависимости от контекста. Вы также можете конкатенировать переменные, содержащие только цифры.
1 2 3 4 5 | VAR1="Hello, " VAR2=2 VAR3=" Worlds" VAR4="$VAR1$VAR2$VAR3" echo "$VAR4" |
1 | Hello, 2 World |
Конкатенация строк с помощью оператора +=
Другим способом объединения строк в bash является добавление переменных или литеральных строк к переменной с помощью оператора +=:
1 2 3 | VAR1="Hello, " VAR1+=" Worlds" echo "$VAR1" |
1 | Hello, World |
В следующем примере оператор += используется для объединения строк в цикле bash for:
1 2 3 4 5 6 | VAR="" for COLOR in 'RED' 'BLUE' 'GREEN' 'WHITE'; do VAR+="${COLOR} " done echo "$VAR" |
1 | RED BLUE GREEN WHITE |