Recientemente, me topé con un tipo de comentario de varias líneas que nunca había visto antes; aquí hay un ejemplo de script:
echo a
#
: aaa
: ddd
#
echo b
Esto parece funcionar, incluso la vim
sintaxis lo resalta. ¿Cómo se llama este estilo de comentarios y cómo puedo encontrar más información al respecto?
bash
shell-script
Wiesław Herr
fuente
fuente
CommentedOutBlock() { echo "test"; }
Respuestas:
Ese no es un comentario de varias líneas.
#
es un comentario de una sola línea:
(dos puntos) no es un comentario en absoluto, sino más bien un comando incorporado de shell que es básicamente un NOP , una operación nula que no hace nada excepto devolver true, liketrue
(y, por lo tanto, establecer$?
a 0 como efecto secundario). Sin embargo, dado que es un comando, puede aceptar argumentos, y dado que ignora sus argumentos, en la mayoría de los casos actúa superficialmente como un comentario. El principal problema con este error es que los argumentos aún se expanden, lo que lleva a una serie de consecuencias no deseadas. Los argumentos todavía se ven afectados por los errores de sintaxis, las redirecciones aún se realizan, por lo que: > file
se truncaránfile
y las: $(dangerous command)
sustituciones se seguirán ejecutando.La forma menos segura y sorprendente de insertar comentarios en los scripts de shell es con
#
. Apéguese a eso incluso para comentarios de varias líneas. Nunca intente (ab) usarlo:
para comentarios. No hay un mecanismo de comentarios de varias líneas dedicado en el shell que sea análogo a la forma de barra diagonal/* */
enC
lenguajes similares.En aras de la exhaustividad, pero no porque sea una práctica recomendada, mencionaré que es posible utilizar documentos aquí para hacer "comentarios" de varias líneas:
fuente
<<
línea, lo que desactiva la sustitución y la expansión.:
cosas que deberían ser comentarios causará un consumo adicional de RAM / CPU. No importará cosas simples en tu escritorio, pero si es algo ejecutado cientos o miles de veces por segundo, no harás nada, muy rápido .: <<=cut
hace posible escribir POD en scripts de shell, vea este ejemplo para más detalles . Esto hace posible su usoperldoc script.sh
. Sin embargo, el comentario de varias líneas que se muestra en esta respuesta es algo que definitivamente debería ser un bloque de comentarios (cada línea comienza con#
).No es ningún estilo de comentario. el
:
comando incorporado no hace absolutamente nada; se está abusando de comentar aquí.fuente
En los primeros depósitos, el colon era la única forma de crear comentarios.
Sin embargo, no es un comentario verdadero, porque la línea se analiza exactamente de la misma manera que cualquier otro comando, y eso puede tener efectos secundarios. Por ejemplo:
(A veces, el colon se usa únicamente con el fin de invocar esos efectos secundarios, pero luego no se usa como comentario).
A veces es conveniente usar los dos puntos para comentar una sección de un script:
Esto es un gran ahorro de tiempo sobre el precedente de cada línea
#
, particularmente si el comentario es solo temporal.fuente
/* */
y ugh, ¡no me hagas comenzar<!-- -->
!Si su comentario está al final del guión, puede hacerlo así:
fuente