I would like to cache a result from a long computation in bash, so I set a variable with this value, for my surprise I got everything in one line, instead of the desired multi-line output.
This behavior of
echo command drove me crazy for a while.
$ FILE=$(cat long-file.txt) $ echo $FILE line 1 line 2 line 3
The correct syntax is really subtle, involving double quotes
$ echo "$FILE" line 1 line 2 line 3
Now I’m able to use pipe chain to the next commands:
$ echo "$FILE" | grep 2 line 2