One of the most commonly used string operations is concatenation.  String concatenation is just a fancy programming word for joining  strings together by appending one string to the end of another string.

In this tutorial, we will explain how to concatenate strings in Bash.

Concatenating Strings

The simplest way to concatenate two or more string variables is to write them one after another:

VAR2=" World"
echo "$VAR3"

The last line will echo the concatenated string:

Hello, World

You can also concatenate one or more variable with literal strings:

VAR1="Hello, "
echo "$VAR2"
Hello, World

In the example above variable VAR1 is  enclosed in curly braces to protect the variable name from surrounding  characters. When the variable is followed by another valid variable-name  character you must enclose it in curly braces ${VAR1}.

To  avoid any word splitting or globbing issues you should always try to  use double quotes around the variable name. If you want to suppress  variable interpolation and special treatment of the backslash character  instead of double use single quotes.

Bash  does not segregate variables by “type”, variables are treated as  integer or string depending on contexts. You can also concatenate  variables that contain only digits.

VAR1="Hello, "
VAR3=" Worlds"
echo "$VAR4"
Hello, 2 Worlds

Concatenating Strings with the += Operator

Another way of concatenating strings in bash is by appending variables or literal strings to a variable using the += operator:

VAR1="Hello, "
VAR1+=" World"
echo "$VAR1"
Hello, World

The following example is using the += operator to concatenate strings in bash for loop:

for ELEMENT in 'Hydrogen' 'Helium' 'Lithium' 'Beryllium'; do
  VAR+="${ELEMENT} "

echo "$VAR"
Hydrogen Helium Lithium Beryllium


Concatenating string  variables is one of the most fundamental operations in Bash scripting.  After reading this tutorial, you should have a good understanding of how  to concatenate strings in Bash. You can also check our guide about comparing strings.

If you have any questions or feedback, feel free to leave a comment.