17.1. Here Strings

A here string can be considered as a stripped-down form of here document. It consists of nothing more than COMMAND <<<$WORD, where $WORD is expanded and fed to the stdin of COMMAND.

Example 17-13. Prepending a line to a file

#!/bin/bash
# prepend.sh: Add text at beginning of file.
#
#  Example contributed by Kenny Stauffer,
#  and slightly modified by document author.


E_NOSUCHFILE=65

read -p "File: " file   # -p arg to 'read' displays prompt.
if [ ! -e "$file" ]
then   # Bail out if no such file.
  echo "File $file not found."
  exit $E_NOSUCHFILE
fi

read -p "Title: " title
cat - $file <<<$title > $file.new

echo "Modified file is $file.new"

exit 0

# from "man bash"
# Here Strings
# 	A variant of here documents, the format is:
# 
# 		<<<word
# 
# 	The word is expanded and supplied to the command on its standard input.

Exercise: Find other uses for here strings.