1 votos

Las nuevas líneas escapadas hacen que el código funcione mal. ¿Por qué?

De una guía de estilo Markdown de Google:

Dado que la mayoría de los fragmentos de la línea de comandos están pensados para ser copiados y pegados directamente en un terminal, la mejor práctica es escapar las nuevas líneas. Utilice una barra invertida al final de la línea:

bazel run :target -- --flag --foo=longlonglonglonglongvalue \
--bar=anotherlonglonglonglonglonglonglonglonglonglongvalue

¿Podría alguien explicarme por qué el escape de nuevas líneas en el siguiente fragmento hace que funcione mal si lo copio y pego en un terminal?

Si copias y pegas este fragmento en un terminal, funciona correctamente:

for (( counter=10; counter>0; counter-- ))
do
echo -n "$counter "
done
printf "\n"

Pero si copias y pegas éste, habrá un error:

for (( counter=10; counter>0; counter-- )) \
do \
echo -n "$counter " \
done \
printf "\n"

2voto

siva Puntos 23

El ejemplo citado utiliza una barra invertida para escapar una nueva línea en medio de lo que normalmente estaría en una línea.

Sin la barra invertida, habría dos comandos, bazel run … y --bar=another… . El segundo comando no es un comando, sino una continuación de la línea anterior, por lo que la nueva línea debe escaparse con una barra invertida para que se ejecute "como" una línea.

La sugerencia de utilizar una barra invertida es en lugar de tener un comando largo en una línea, lo que entonces requeriría desplazarse horizontalmente:

bazel run :target -- --flag --foo=longlonglonglonglongvalue --bar=anotherlonglonglonglonglonglonglonglonglonglongvalue

En tu código, las nuevas líneas tienen significado. Eliminar todas las líneas nuevas crea un comando inválido:

for (( counter=10; counter>0; counter-- )) do echo -n "$counter " done printf "\n"

Esto no es válido, por lo que la versión con las barras invertidas no funciona en tu caso - quieres las nuevas líneas tal y como tienen significado en tu código.

2voto

Linc D. Puntos 11

Las sentencias 'done' y 'printf' tienen que estar cada una en una nueva línea.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X