Me gustaría poder comentar una sola bandera en un comando de una línea. Bash solo parece tener from # till end-of-line
comentarios. Estoy mirando trucos como:
ls -l $([ ] && -F is turned off) -a /etc
Es feo, pero mejor que nada. ¿Hay una mejor manera?
Lo siguiente parece funcionar, pero no estoy seguro de si es portátil:
ls -l `# -F is turned off` -a /etc
#comment
truco también se menciona aquí: stackoverflow.com/questions/9522631/…${IFS#comment}
introducido por @pjh en los comentarios. No se invoca ningún sub-shell.Respuestas:
Mi preferido es:
Comentando en un script Bash
fuente
$(#comment)
no funciona.)
como parte del comentario en sí. La mayoría de los desafíos de bash se deben a la compatibilidad retro con versiones anteriores, y una estrategia común es utilizar la solución más antigua posible.true && `# comment` && true
es una expresión válida. Un comentario real generaría algo como:syntax error near unexpected token
&& ''Me resulta más fácil (y más legible) simplemente copiar la línea y comentar la versión original:
fuente
$(: ...)
es un poco menos feo, pero aún no es bueno.fuente
$(: ...)
sintaxis en realidad no parece permitir incrustar comentarios: mientrasecho "foo" `# comment` "bar"
que terminará el comentario en el segundo backtick, el supuesto equivalenteecho "foo" $(: # comment) "bar"
no analiza nada detrás del#
.¿Qué tal almacenarlo en una variable?
fuente
Aquí está mi solución para comentarios en línea entre múltiples comandos canalizados.
Ejemplo de código no comentado:
Solución para un comentario de tubería (usando una función auxiliar):
O si lo prefiere, esta es la misma solución sin la función auxiliar, pero es un poco más complicada:
fuente
La mayoría de los comandos permiten que los args lleguen en cualquier orden. Simplemente mueva las banderas comentadas al final de la línea:
Luego, para volver a encenderlo, simplemente descomenta y elimina el texto:
fuente
#
sin un solo espacio en blanco después del comando. ¡gracias!Si sabe que una variable está vacía, puede usarla como comentario. Por supuesto, si no está vacío, estropeará su comando.
§ 10.2. Sustitución de parámetros
fuente
${name:=comment}
estar a salvo.Para deshabilitar una parte de un comando como
a && b
, simplemente creé un script vacíox
que está en camino, para que pueda hacer cosas como:cuando necesito construir, y
cuando no (usando Ctrl + Ay Ctrl + Epara moverse al principio y al final).
Como se señaló en los comentarios, otra forma de hacerlo es Bash integrado en
:
lugar dex
:fuente
:
Como en:string; of; commands; : disabled; enabled;
Si vale la pena hacer el comentario, probablemente pueda ir al final de la línea o en una línea por sí solo. Raramente encuentro la necesidad de comentarios dentro de la línea con código antes y después del comentario en cualquier idioma.
Oh, hay una excepción, que es el dialecto de SQL que suelo usar y que usa '{comentarios}'. De vez en cuando escribiré:
Pero incluso eso es una exageración.
fuente