Considerar
echo \ # this is a comment
foo
Isto dá:
$ sh foo.sh
# this is a comment
foo.sh: line 2: foo: command not found
Após algumas pesquisas na web, encontrei uma solução da DigitalRoss no site irmão Stack Overflow. Então pode-se fazer
echo `: this is a comment` \
foo
ou alternativamente
echo $(: this is a comment) \
foo
No entanto, a DigitalRoss não explicou por que essas soluções funcionam. Eu apreciaria uma explicação. Ele respondeu com um comentário:
Costumava haver um
gotocomando shell que ramifica para rótulos especificados como:aqui. Ogotose foi, mas você ainda pode usar a: whateversintaxe ...:é uma espécie de comentário analisado agora.
Mas eu gostaria de mais detalhes e contexto, incluindo uma discussão sobre portabilidade.
Obviamente, se alguém tiver outras soluções, isso também seria bom.
Consulte também a pergunta anterior Como comentar comandos de várias linhas em scripts de shell? .
Leve a mensagem para casa da discussão abaixo. O `: this is a comment`é apenas uma substituição de comando. A saída de : this is a commenté nada, e isso é colocado no lugar de `: this is a comment`.
Uma escolha melhor é a seguinte:
echo `# this is a comment` \
foo