Normally bash
doesn’t interpret escape sequences in string literals. So if you write \n
or "\n"
or '\n'
, that’s not a linebreak – it’s the letter n
(in the first case) or a backslash followed by the letter n
(in the other two cases).
$'somestring'
is a syntax for string literals with escape sequences. So unlike '\n'
, $'\n'
actually is a linebreak.