no puedo entender la nueva línea de barra invertida entre comillas dobles de bash

no puedo entender la nueva línea de barra invertida entre comillas dobles de bash

de acuerdo añu doc,

La barra invertida conserva su significado especial solo cuando va seguida de uno de los siguientes caracteres: '$', '`', '"', '\' o nueva línea. Entre comillas dobles, las barras invertidas seguidas de uno de estos caracteres se eliminan .

Lo intenté

p="a\$b";echo $p  # a$b
p="a\`b";echo $p  # a`b
p="a\"b";echo $p  # a"b
p="a\\b";echo $p  # a\b

todo está bien. ¿Pero nueva línea?

p="a\newlineb";echo $p  # a\newlineb

¿Qué significa nueva línea en el documento?

Respuesta1

Nueva línea es el nombre del carácter de nueva línea, es decir, el carácter que normalmente se escribe como \nen C:

$ p="a\
b"; echo "$p"
ab

El resultado es abmás que \a<newline>bdesde elEl estándar POSIX dice:

A <backslash>que no esté entrecomillado conservará el valor literal del siguiente carácter, con excepción de <newline>. Si <newline>sigue a <backslash>, el shell interpretará esto como una continuación de línea. El <backslash>y <newline>se eliminará antes de dividir la entrada en tokens. Dado que el escape <newline>se elimina por completo de la entrada y no se reemplaza por ningún espacio en blanco, no puede servir como separador de tokens.

Pero la cuerdaescitado entre comillas dobles... Bueno, este es un caso especial:

Conservará <backslash>su significado especial como carácter de escape solo cuando esté seguido de uno de los siguientes caracteres cuando se considere especial : $, `, ", \. <newline>

Entonces, la cadena entre comillas dobles significa que la barra invertida de nueva línea se interpreta como si fueranoentrecomillado, lo que significa que actúa como una continuación de línea y se eliminan tanto la barra invertida como la nueva línea.

Tenga en cuenta que esto sucede cuando asigna la pvariable, no cuando echola asigna.

Ver tambiénImplicaciones de seguridad de olvidarse de citar una variable en shells bash/POSIXsobre la necesidad de citar sus variables, siempre.

información relacionada