Me gustaría poder comentar una sola bandera en un comando de una línea. Bash solo parece tener from # till end-of-linecomentarios. 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

#commenttruco 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` && truees 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.
ls -l $ {1 # -F está desactivado} -a / etc.§ 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íoxque 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