J’aimerais pouvoir commenter un seul drapeau dans une commande à une ligne. Bash ne semble avoir from # till end-of-line
commentaires de from # till end-of-line
. Je regarde des astuces comme:
ls -l $([ ] && -F is turned off) -a /etc
C’est moche, mais mieux que rien. Y a-t-il une meilleure façon?
Ce qui suit semble fonctionner, mais je ne suis pas sûr que ce soit portable:
ls -l `# -F is turned off` -a /etc
Mon préféré est:
Commenter dans un script Bash
Cela aura un peu de frais, mais techniquement, cela répond à votre question.
echo abc `#put your comment here` \ def `#another chance for a comment` \ xyz etc
Et pour les pipelines en particulier, il existe une solution plus propre sans frais généraux
echo abc | # normal comment OK here tr az AZ | # another normal comment OK here sort | # the pipelines are automatically continued uniq # final comment
Comment mettre un commentaire de ligne pour une commande multiligne
Je trouve plus facile (et le plus lisible) de copier la ligne et de commenter la version originale:
#Old version of ls: #ls -l $([ ] && -F is turned off) -a /etc ls -l -a /etc
$(: ...)
est un peu moins laid, mais toujours pas bon.
Que diriez-vous de le stocker dans une variable?
#extraargs=-F ls -l $extraargs -a /etc
La plupart des commandes permettent aux arguments de venir dans n’importe quel ordre. Déplacez simplement les drapeaux commentés à la fin de la ligne:
ls -l -a /etc # -F is turned off
Ensuite, pour le réactiver, décommentez et supprimez le texte:
ls -l -a /etc -F
Voici ma solution pour les commentaires en ligne entre les commandes multiples.
Exemple de code sans commentaire:
#!/bin/sh çat input.txt \ | grep something \ | sort -r
Solution pour un commentaire de pipe (en utilisant une fonction d’assistance):
#!/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
Ou si vous préférez, voici la même solution sans la fonction d’assistance, mais c’est un peu plus compliqué:
#!/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
Si vous savez qu’une variable est vide, vous pouvez l’utiliser comme commentaire. Bien sûr, si ce n’est pas vide, cela gâchera votre commande.
ls -l $ {1 # -F est désactivé} -a / etc
§ 10.2. Paramètre Substitution
Si le commentaire en vaut la peine, il est probable qu’il se produise à la fin de la ligne ou sur une ligne à part. Je trouve rarement un besoin de commentaires en ligne avec du code avant et après le commentaire dans n’importe quelle langue.
Oh, il y a une exception, qui est le dialecte de SQL que j’utilise habituellement et qui utilise ‘{comments}’. Je vais parfois écrire:
CREATE UNIQUE INDEX u1_table ON Table(...); CREATE {DUPS} INDEX d1_table ON Table(...);
Mais même cela est un tronçon.
Pour désactiver une partie d’une commande comme a && b
, j’ai simplement créé un script vide x
qui est sur le chemin, afin que je puisse faire des choses comme:
mvn install && runProject
quand j’ai besoin de construire, et
x mvn install && runProject
quand pas (utiliser Ctrl + A et Ctrl + E pour aller au début et à la fin).
Comme noté dans les commentaires, une autre façon de faire est Bash intégré :
au lieu de x
:
$ : Hello world, how are you? && echo "Fine." Fine.