was NOT recognized and echo the tr command continued processing. produces: HERE DOC WITH <<- A SINGLE SPACE CHARACTER (I.E. 0X20 ) IS AT THE BEGINNING OF THIS LINE THIS LINE BEGINS WITH A SINGLE TAB CHARACTER I.E 0X09 AS DOES THE NEXT LINE The intended end was before this line and these were not processed by tr +++++++++++++++ HERE DOC WITH << A SINGLE SPACE CHARACTER (I.E. 0X20 ) IS AT THE BEGINNING OF THIS LINE THIS LINE BEGINS WITH A SINGLE TAB CHARACTER I.E 0X09 AS DOES THE NEXT LINE END_TEXT ECHO THE INTENDED END WAS BEFORE THIS LINE, ECHO BUT BECAUSE THE LINE WITH THE DELIMITING IDENTIFIER BEGAN WITH A TAB IT WAS NOT RECOGNIZED AND ECHO THE TR COMMAND CONTINUED PROCESSING. Another use is to output to a file: $ cat << EOF > ~/testFile001 > 3 spaces precede this text. > A single tab character is at the beginning of this line. >Nothing precedes this text EOF Here strings A here string (available in bash, ksh, or zsh) is syntactically similar, consisting of <<<, and effects input redirection from a word (a sequence treated as a unit by the shell, in this context generally a string literal). In this case the usual shell syntax is used for the word (“here string syntax”), with the only syntax being the redirection: a here string is an ordinary string used for input redirection, not a special kind of string. A single word need not be quoted: $ LANG=C tr a-z A-Z <<< one ONE In case of a string with spaces, it must be quoted: $ LANG=C tr a-z A-Z <<< 'one two three' ONE TWO THREE This could also be written as: $ foo='one two three' $ LANG=C tr a-z A-Z <<< "$foo" ONE TWO THREE Multiline strings are acceptable, yielding: $ LANG=C tr a-z A-Z <<< 'one > two three' ONE TWO THREE Note that leading and trailing newlines, if present, are included: $ LANG=C tr a-z A-Z <<< ' > one > two three > ' ONE TWO THREE $ The key difference from here documents is that, in here documents, the delimiters are on separate lines; the leading and trailing newlines are stripped. Unlike here documents, here strings do not use delimiters. Here strings are particularly useful for commands that often take short input, such as the calculator bc: $ bc <<< 2^10 1024