Je voudrais pouvoir commenter un seul drapeau dans une commande sur une ligne. Bash ne semble avoir que des from # till end-of-line
commentaires. Je regarde des trucs comme:
ls -l $([ ] && -F is turned off) -a /etc
C'est moche, mais mieux que rien. Y a-t-il un meilleur moyen?
Ce qui suit semble fonctionner, mais je ne suis pas sûr qu'il soit portable:
ls -l `# -F is turned off` -a /etc
#comment
astuce est également mentionnée ici: stackoverflow.com/questions/9522631/…${IFS#comment}
introduite par @pjh dans les commentaires. Aucun sous-shell n'est appelé.Réponses:
Mon préféré est:
Commenter dans un script Bash
la source
$(#comment)
cela ne fonctionne pas.)
comme faisant partie du commentaire lui-même. La plupart des défis de bash sont dus à la rétro-compatibilité avec les anciennes versions, et une stratégie courante consiste à utiliser la solution la plus ancienne possible.true && `# comment` && true
c'est une expression valide. Un vrai commentaire générerait quelque chose comme:syntax error near unexpected token
&& ''Je trouve qu'il est plus facile (et plus lisible) de simplement copier la ligne et de commenter la version originale:
la source
$(: ...)
est un peu moins moche, mais toujours pas bon.la source
$(: ...)
syntaxe ne semble pas autoriser l'incorporation de commentaires: alorsecho "foo" `# comment` "bar"
qu'elle terminera le commentaire au deuxième backtick, l'équivalent supposé n'analyseecho "foo" $(: # comment) "bar"
rien derrière le#
.Que diriez-vous de le stocker dans une variable?
la source
Voici ma solution pour les commentaires en ligne entre plusieurs commandes canalisées.
Exemple de code non commenté:
Solution pour un commentaire de pipe (en utilisant une fonction d'assistance):
Ou si vous préférez, voici la même solution sans la fonction d'assistance, mais c'est un peu plus compliqué:
la source
La plupart des commandes permettent aux arguments d'arriver dans n'importe quel ordre. Déplacez simplement les indicateurs commentés à la fin de la ligne:
Ensuite, pour le réactiver, décommentez et supprimez le texte:
la source
#
sans un seul espace après la commande. Merci!Si vous savez qu'une variable est vide, vous pouvez l'utiliser comme commentaire. Bien sûr, s'il n'est pas vide, cela gâchera votre commande.
§ 10.2. Substitution de paramètres
la source
${name:=comment}
pour être en sécurité.Pour désactiver une partie d'une commande comme
a && b
, j'ai simplement créé un script videx
qui est sur le chemin, donc je peux faire des choses comme:quand j'ai besoin de construire, et
quand ce n'est pas le cas (en utilisant Ctrl + Aet Ctrl + Epour aller au début et à la fin).
Comme indiqué dans les commentaires, une autre façon de le faire est Bash intégré au
:
lieu dex
:la source
:
Comme dans:string; of; commands; : disabled; enabled;
Si le commentaire vaut la peine d'être fait, il peut probablement figurer à la fin de la ligne ou sur une ligne seule. Je trouve rarement le besoin de commentaires intra-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}». Parfois, j'écrirai:
Mais même cela est un peu exagéré.
la source