String concatenation is the process of joining two or more strings together to form a single string.
In this tutorial we’ll explain and exemplify different methods to concatenate strings in Bash.
How to Concatenate Strings in Bash
In Bash, strings can be concatenated by placing them one after the other, or by using the +=
operator. There are a few things to take into account when placing them one after the other, which we’ll cover in this tutorial.
The simplest way to concatenate strings in Bash is by just placing two or more strings one after the other.
Concatenate String Variables
In this example we’ll concatenate 2 string variables.
Variables a
and b
are strings, and we’re concatenating them in c
simply by putting them one next to the other.
#!/bin/bash a="Hello, " b="World!" c="$a$b" echo $c
Hello, World!
We’re using double quotes to enclose strings. This is because double quotes allow string interpolation
Concatenate Literal Strings and Variables
In our first example we concatenated just variables by placing them one after the other.
When concatenating literal strings and variables we’ll need to make sure the variable doesn’t get interpreted incorrectly when it’s followed by other characters that are valid for a variable name.
For example, if we want to concatenate the variable $a
and the literal string xyz
, it would be wrong if we simply put them one after the other like this:
a="abc" result="$axyz" echo $result
The output will be empty:
The interpreter would just assume that $axyz
is a variable. Since the variable $axyz
doesn’t exist, echo $result
will be empty.
For this we need to set some boundaries so the Bash interpreter knows that $a
is a variable. We do this by enclosing it in curly braces ${a}
:
a="abc" result="${a}xyz" echo $result
abcxyz
Now the Bash interpreter can tell that a
is a variable, and separate from the literal string xyz
.
Concatenating Variables of Different Types
Bash variables don’t have types, and are essentially all strings. They behave differently depending on context, so you can easily concatenate variables of any “type”.
In the following example a
is an integer, that can be used to perform arithmetic operations, and b
is a string, and when we just put them one after the other they are concatenated as two strings.
a=1001 b=" Arabian Nights" echo $a$b
1001 Arabian Nights
Concatenate Strings with the += Operator
Bash also allows string concatenation using the +=
operator. This is also useful when concatenating strings in loops.
This is a simple example of string concatenation using the +=
operator.
a="How" a+=" now" a+=" brown" a+=" cow" echo $a
How now brown cow
This is an example of using the +=
operator to concatenate strings in a Bash for loop:
a="" for word in "How" "now" "brown" "cow"; do a+="${word} " done echo $a
How now brown cow
Conclusion
String concatenation is one of the most common string operations. Hopefully this tutorial helped you understand string concatenation in Bash.
If you encounter any issues or questions please feel free to leave a comment and we’ll get back to you as soon as we can.