Even this left me a but confused like how do the functions get the input parameters does the * in echo -e "$RED$*$NORMAL" have something to do with it?
There's just so many obscure ways of doing the same thing not to mention there's very few good places to teach you shell scripting and shell scripting best practices.
I'd rather just go with python. It's easier to read.
TLDP's Advanced Bash-Scripting Guide is a great resource for learning bash.
For example, this section talks about the meaning of "$*":
http://www.tldp.org/LDP/abs/html/internalvariables.html#ARGL...
For learning the differences between POSIX sh and bash (which can trip you up if you want to run on systems without bash, or if you simply don't know that #!/bin/sh is different from #!/bin/bash), see http://mywiki.wooledge.org/Bashism
And regarding how to parse your example, the $* in a string expands to all input parameters to the function, separated by the first character of the IFS variable (e.g. space).
I am sure no one will get that reference. :-)