≡ Menu

Bash String Concatenation

How do I join two strings under BASH? I have two strings stored in two different variables (_p=/delta and _u=aqua) and how do I join this and assign it to another variable in bash?

You can use parameter substitution as follows:

 
_p="/delta"
_u="aqua"
### join two $vars ###
out="${_p}${_u}"
echo "${_p}${_u}"
echo "${_p} and ${_u}"
echo "${_p}/${_u}"
echo "Output: $out"
 

Another example:

#!/bin/bash
_domain="${1:-example.com}"
_root="/chroot"
_path="${_root}/${_domain}"
echo "Host: ${HOSTNAME}@$(date) by $USER"
echo
echo "Setting Apache for ${_domain} @ ${_path}...."
# setupJail "${_domain}" "${_path}"
 

Sample outouts:

 ./setup.httpd nixcraft.net.in
Host: www34.nixcraft.com@Fri Nov 19 01:44:03 IST 2010 by root
Setting Apache for nixcraft.net.in @ /chroot/nixcraft.net.in...
Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 2 comments… add one }

  • Anthony Thyssen November 22, 2010, 11:35 pm

    Assigned the variables in a quoted string, you can include or not include spaces, commas or anything else as you like.

    a=”part one”
    b=”part two”
    c=”$a, $b”
    echo “$c”
    part one, part two

  • droopy4u February 13, 2011, 2:47 pm

    http://tldp.org/LDP/abs/html/bashver3.html – for more info check it out

    The += operator is now permitted in in places where previously only the = assignment operator was recognized.

    a=1
    echo $a # 1

    a+=5 # Won’t work under versions of Bash earlier than 3.1.
    echo $a # 15

    a+=Hello
    echo $a # 15Hello

Leave a Comment