with variable script passing example bash comments

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:

Comentando en script BASH

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

§ 10.2. Sustitución de parámetros


$(: ...) es un poco menos feo, pero aún no es bueno.