Recentemente, deparei-me com um tipo de comentário multilinha que nunca vi antes - aqui está um exemplo de script:
echo a
#
: aaa
: ddd
#
echo b
Isso parece funcionar, até a vim
sintaxe destaca. Como é chamado esse estilo de comentário e como encontro mais informações sobre ele?
bash
shell-script
Wiesław Herr
fonte
fonte
CommentedOutBlock() { echo "test"; }
Respostas:
Esse não é um comentário de várias linhas.
#
é um comentário de linha única.:
(dois pontos) não é um comentário, mas um comando interno do shell que é basicamente um NOP , uma operação nula que não faz nada, exceto retornar true, comotrue
(por exemplo, definir$?
0 como um efeito colateral). No entanto, como é um comando, ele pode aceitar argumentos e, como ignora seus argumentos, na maioria dos casos age superficialmente como um comentário. O principal problema desse kludge é que os argumentos ainda são expandidos, levando a uma série de consequências não intencionais. Os argumentos ainda são afetados por erros de sintaxe, os redirecionamentos ainda são executados e, portanto,: > file
serão truncadosfile
e as: $(dangerous command)
substituições ainda serão executadas.A maneira menos surpreendente e completamente segura de inserir comentários em scripts de shell é com
#
. Atenha-se a isso mesmo para comentários de várias linhas. Nunca tente (ab) usar:
para comentários. Não existe um mecanismo de comentário de várias linhas dedicado no shell que seja análogo à/* */
forma de estrela de barra emC
idiomas semelhantes.Por uma questão de completude, mas não porque é uma prática recomendada, mencionarei que é possível usar os documentos aqui para fazer "comentários" multilinhas:
fonte
<<
linha - isso desativa a substituição e a expansão.:
itens que devem ser comentários causará um consumo extra de RAM / CPU. Não vai agradar a coisas simples em sua área de trabalho, mas se for algo executado centenas ou milhares de vezes por segundo, você não fará nada, muito rápido .: <<=cut
permite escrever POD em scripts de shell, consulte este exemplo para obter detalhes . Isso torna possível o usoperldoc script.sh
. No entanto, o comentário de várias linhas mostrado nesta resposta é algo que definitivamente deve ser um bloco de comentários (cada linha começando com#
).Não é nenhum estilo de comentar. o
:
comando interno não faz absolutamente nada; está sendo abusado por comentar aqui.fonte
Nos primeiros anos, o cólon era a única maneira de criar comentários.
No entanto, não é um comentário verdadeiro, porque a linha é analisada exatamente da mesma maneira que qualquer outro comando, e que pode ter efeitos colaterais. Por exemplo:
(Às vezes, o cólon é usado apenas com o objetivo de invocar esses efeitos colaterais, mas depois não está sendo usado como comentário.)
Às vezes, é conveniente usar dois pontos para comentar uma seção de um script:
Isso economiza bastante o tempo que precede cada linha
#
, principalmente se os comentários forem apenas temporários.fonte
/* */
isso, não me deixe começar<!-- -->
!Se seu comentário estiver no final do script, você poderá fazer o seguinte:
fonte