This
STR="Hello\nWorld"
echo $STR
produces as output
Hello\nWorld
instead of
Hello
World
What should I do to have a newline in a string?
Note: This question is not about echo.
I’m aware of echo -e, but I’m looking for a solution that allows passing a string (which includes a newline) as an argument to other commands that do not have a similar option to interpret \n‘s as newlines.
If you’re using Bash, you can use backslash-escapes inside of a specially-quoted
$'string'. For example, adding\n:Prints:
If you’re using pretty much any other shell, just insert the newline as-is in the string:
Bash recognizes a number of other backslash escape sequences in the
$''string. Here is an excerpt from the Bash manual page: