variable - Comentarios en línea para Bash?
bash script with parameters example (9)
Me gustaría poder comentar un solo indicador en un comando de una línea. Bash solo parece tener from # till end-of-line
comentarios. Estoy viendo trucos como:
ls -l $([ ] && -F is turned off) -a /etc
Es feo, pero es 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
¿Qué hay de almacenarlo en una variable?
#extraargs=-F
ls -l $extraargs -a /etc
Aquí está mi solución para comentarios en línea entre múltiples comandos canalizados.
Ejemplo de código sin comentario:
#!/bin/sh
çat input.txt /
| grep something /
| sort -r
Solución para un comentario de canalización (usando una función auxiliar):
#!/bin/sh
pipe_comment() {
cat -
}
cat input.txt /
| pipe_comment "filter down to lines that contain the word: something" /
| grep something /
| pipe_comment "reverse sort what is left" /
| sort -r
O si lo prefiere, esta es la misma solución sin la función auxiliar, pero es un poco más desordenada:
#!/bin/sh
cat input.txt /
| cat - `: filter down to lines that contain the word: something` /
| grep something /
| cat - `: reverse sort what is left` /
| sort -r
La mayoría de los comandos permiten que args entren en cualquier orden. Simplemente mueva las banderas comentadas al final de la línea:
ls -l -a /etc # -F is turned off
Luego, para volver a encenderlo, solo elimine el comentario y elimine el texto:
ls -l -a /etc -F
Me parece más fácil (y más fácil de leer) copiar la línea y comentar la versión original:
#Old version of ls:
#ls -l $([ ] && -F is turned off) -a /etc
ls -l -a /etc
Mi preferido es:
Esto tendrá algunos gastos generales, pero técnicamente responde tu pregunta
echo abc `#put your comment here` / def `#another chance for a comment` / xyz etc
Y específicamente para las tuberías, hay una solución limpia sin gastos generales
echo abc | # normal comment OK here tr a-z A-Z | # another normal comment OK here sort | # the pipelines are automatically continued uniq # final comment
Cómo poner un comentario de línea para un comando multilínea
Para deshabilitar una parte de un comando como a && b
, simplemente creé un script vacío x
que está en la ruta, por lo que puedo hacer cosas como:
mvn install && runProject
cuando necesito construir, y
x mvn install && runProject
cuando no (usando Ctrl + A y Ctrl + E para moverse al principio y al final).
Como se señala en los comentarios, otra forma de hacerlo es Bash incorporado :
en lugar de x
:
$ : Hello world, how are you? && echo "Fine."
Fine.
Si el comentario vale la pena, probablemente puede ir al final de la línea, o en una línea por sí mismo. Rara vez encuentro necesario hacer comentarios dentro de la línea con el 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 ''{comments}''. Ocasionalmente, escribiré:
CREATE UNIQUE INDEX u1_table ON Table(...);
CREATE {DUPS} INDEX d1_table ON Table(...);
Pero incluso eso es un tramo.
Si sabe que una variable está vacía, puede usarla como comentario. Por supuesto, si no está vacío, estropeará tu comando.
ls -l ${1# -F is turned off} -a /etc
$(: ...)
es un poco menos feo, pero aún no es bueno.