В $
начале строки в:
echo $'Hello World\nThis is a new line'
заставляет escape-последовательности интерпретироваться.
Справочник Bash [говорит]
Слова вида $ 'string' обрабатываются специально. Слово расширяется до строки, символы с обратной косой чертой заменяются в соответствии со стандартом ANSI C. ..
..
Расширенный результат заключен в одинарные кавычки, как если бы знак доллара отсутствовал.
Но
echo $"Hello World\nThis is a new line"
совершенно другой. Эта [статья] о переводе на конкретный язык говорит:
Строка в двойных кавычках, перед которой стоит знак доллара ('$'), приведет к переводу строки в соответствии с текущей локалью. Если текущим языковым стандартом является C или POSIX, знак доллара игнорируется. Если строка переведена и заменена, замена заменяется двойными кавычками.
Примечание: IIRC оба $'string'
и $"string"
могут не найти поддержки среди разных оболочек. Не только люди из других оболочек с любопытством смотрят на них, но и спорят о том, можно ли этого избежать из-за переносимости сценариев.