How to remove extra spaces in bash?

Try this:

echo "$HEAD" | tr -s " "

or maybe you want to save it in a variable:

NEWHEAD=$(echo "$HEAD" | tr -s " ")

Update

To remove leading and trailing whitespaces, do this:

NEWHEAD=$(echo "$HEAD" | tr -s " ")
NEWHEAD=${NEWHEAD%% }
NEWHEAD=${NEWHEAD## }

Using awk:

$ echo "$HEAD" | awk '$1=$1'
how to remove extra spaces

Take advantage of the word-splitting effects of not quoting your variable

$ HEAD="    how to  remove    extra        spaces                     "
$ set -- $HEAD
$ HEAD=$*
$ echo ">>>$HEAD<<<"
>>>how to remove extra spaces<<<

If you don't want to use the positional paramaters, use an array

ary=($HEAD)
HEAD=${ary[@]}
echo "$HEAD"

One dangerous side-effect of not quoting is that filename expansion will be in play. So turn it off first, and re-enable it after:

$ set -f
$ set -- $HEAD
$ set +f