
Here Strings
Here strings are a feature in various programming and scripting languages that allow for the creation of multi-line strings or the redirection of input directly into commands. Here’s a detailed overview:
Definition
A here string is a type of string that allows you to pass a string directly to the standard input (stdin) of a command. It simplifies the process of providing multi-line input without needing to create temporary files or use echo commands.
Syntax
In Bash, here strings are denoted by the <<< operator. The basic syntax is:
command <<< "string"This passes the specified string as input to the command.
Characteristics
- Multi-line Input: Here strings can handle multi-line text, treating each line as separate input.
 - Simplicity: They provide a straightforward way to pass data to commands without additional piping or file management.
 - Redirection: Here strings are a form of input redirection, similar to here documents (heredocs), but more concise.
 
Examples
- 
Basic Usage:
grep "pattern" <<< "This is a test string containing pattern."This command searches for “pattern” in the provided string.
 - 
Multi-line Input:
tr ' ' '\n' <<< "Line 1 Line 2 Line 3"This command replaces spaces with newlines, outputting:
Line 1 Line 2 Line 3 - 
Using Variables:
my_var="Hello World" echo <<< "$my_var"This will output
Hello World. 
Comparison with Here Documents
While here strings and here documents (heredocs) serve similar purposes, here strings are simpler and more concise. Here documents require a delimiter to indicate the end of the input, whereas here strings do not.
Example of Here Document:
cat << EOF
This is a here document.
It can span multiple lines.
EOF