Considerar
echo \ # this is a comment
foo
Esto da:
$ sh foo.sh
# this is a comment
foo.sh: line 2: foo: command not found
Después de buscar en la web, encontré una solución de DigitalRoss en el sitio hermano Stack Overflow. Entonces uno puede hacer
echo `: this is a comment` \
foo
o alternativamente
echo $(: this is a comment) \
foo
Sin embargo, DigitalRoss no explicó por qué funcionan estas soluciones. Agradecería una explicación. Él respondió con un comentario:
Solía haber un
gotocomando de shell que se bifurcaba a las etiquetas especificadas como:aquí. Segotoha ido, pero aún puede usar la: whateversintaxis ...:es una especie de comentario analizado ahora.
Pero me gustaría obtener más detalles y contexto, incluida una discusión sobre la portabilidad.
Por supuesto, si alguien tiene otras soluciones, eso también sería bueno.
Consulte también la pregunta anterior ¿ Cómo comentar comandos de varias líneas en scripts de shell? .
Lleve a casa el mensaje de la discusión a continuación. El `: this is a comment`es solo una sustitución de comando. La salida de : this is a commentno es nada, y eso se pone en lugar de `: this is a comment`.
Una mejor opción es la siguiente:
echo `# this is a comment` \
foo