echo "This line uses the \"echo\" builtin."
/bin/echo "This line uses the /bin/echo system command."
A keyword is a reserved word, token or operator. Keywords have a special meaning to the shell, and indeed
are the building blocks of the shell's syntax. As examples, for, while, do, and ! are keywords. Similar to a
builtin, a keyword is hard-coded into Bash, but unlike a builtin, a keyword is not in itself a command, but a
subunit of a command construct. 
prints (to stdout) an expression or variable (see Example 4-1).
An echo requires the -e option to print escaped characters. See Example 5-2.
Normally, each echo command prints a terminal newline, but the -n option suppresses this.
An echo can be used to feed a sequence of commands down a pipe.
if echo "$VAR" | grep -q txt # if [[ $VAR = *txt* ]]
echo "$VAR contains the substring sequence \"txt\""
An echo, in combination with command substitution can set a variable.
a=`echo "HELLO" | tr A-Z a-z`
See also Example 16-22, Example 16-3, Example 16-47, and Example 16-48.
Be aware that echo `command` deletes any linefeeds that the output of command generates.
The $IFS (internal field separator) variable normally contains \n (linefeed) as one of its set of
whitespace characters. Bash therefore splits the output of command at linefeeds into arguments to
echo. Then echo outputs these arguments, separated by spaces.
bash$ ls -l /usr/share/apps/kjezz/sounds
-rw-r--r-- 1 root root 1407 Nov 7 2000 reflect.au
-rw-r--r-- 1 root root 362 Nov 7 2000 seconds.au
bash$ echo `ls -l /usr/share/apps/kjezz/sounds`
total 40 -rw-r--r-- 1 root root 716 Nov 7 2000 reflect.au -rw-r--r-- 1 root root ...
So, how can we embed a linefeed within an echoed character string?
# Embedding a linefeed?
echo "Why doesn't this string \n split on two lines?"
# Doesn't split.
Advanced Bash-Scripting Guide
Chapter 15. Internal Commands and Builtins