Considérer
echo \ # this is a comment
foo
Cela donne:
$ sh foo.sh
# this is a comment
foo.sh: line 2: foo: command not found
Après quelques recherches sur le web, j'ai trouvé une solution de DigitalRoss sur le site sœur Stack Overflow. On peut donc faire
echo `: this is a comment` \
foo
Ou bien
echo $(: this is a comment) \
foo
Cependant, DigitalRoss n'a pas expliqué pourquoi ces solutions fonctionnent. J'apprécierais une explication. Il a répondu avec un commentaire:
Il y avait auparavant une
gotocommande shell qui se ramifiait aux étiquettes spécifiées comme:ici. Legotoest parti mais vous pouvez toujours utiliser la: whateversyntaxe ...:est une sorte de commentaire analysé maintenant.
Mais j'aimerais plus de détails et de contexte, y compris une discussion sur la portabilité.
Bien sûr, si quelqu'un a d'autres solutions, ce serait bien aussi.
Voir aussi la question précédente Comment commenter des commandes multilignes dans des scripts shell? .
Retenez le message de la discussion ci-dessous. C'est `: this is a comment`juste une substitution de commande. La sortie de : this is a commentn'est rien, et cela se met à la place de `: this is a comment`.
Un meilleur choix est le suivant:
echo `# this is a comment` \
foo