echoIntenté ejecutar una nueva línea usando e intenté seguir dos comandos:
Primer comando:
echo $'Hello World\nThis is a new line'Respuesta:
Hello World This is a new lineSegundo comando:
echo $"Hello World\nThis is a new line"Respuesta:
Hello World\nThis is a new line
Mi pregunta es ¿cuál es la diferencia entre la secuencia envuelta con $' 'vs cadena envuelto con $" "en bash's echo?

"weak quote"y'strong quote'son diferentes de$'C String'y$"I18N String".Respuestas:
Como se explica aquí , la sintaxis
$'string'especifica una cadena de estilo C que incluye caracteres mágicos escapados, como\npara una nueva línea.$"string"es para la expansión I18N, que no tiene tales escapes mágicos.Tenga en cuenta que estos son distintos de los más comunes
"string"(cita débil) y'string'(cita fuerte).fuente
El
$en el comienzo de la cadena en:hace que las secuencias de escape sean interpretadas.
Manual de referencia de Bash [dice]
Pero
Es completamente diferente. Este [artículo] sobre traducción específica del entorno local dice:
Nota: IIRC ambos
$'string'y$"string"pueden no encontrar soporte entre diferentes shells. No solo las personas de otros shells los miran con curiosidad, sino que también debaten sobre si esto podría evitarse para la portabilidad del script.fuente
ksh93También entiende$'...'.$'xxx'No es un bashismo, pero fue introducido porkshvarios años antesbash. Actualmente también es compatible conzshybusybox shy está siendo revisado por el estándar POSIX.