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
goto
comando de shell que se bifurcaba a las etiquetas especificadas como:
aquí. Segoto
ha ido, pero aún puede usar la: whatever
sintaxis ...:
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 comment
no 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