Comentando várias linhas em scripts bash

Publicado por Perfil removido em 22/05/2015

[ Hits: 30.793 ]

 


Comentando várias linhas em scripts bash



Comentar uma área do código para que não seja executada durante um teste, ou mesmo inserir uma descrição de várias linhas é algo útil em algumas ocasiões. Mas como fazer isto em scripts bash, sem necessitar inserir um caractere "#" em cada linha?

Procurando por algo para o bash semelhante ao /* */ usado no C e Java, encontrei as opções abaixo.

Opção 1

:<<'STRING-DELIMITADORA'
STRING-DELIMITADORA


Onde o conteúdo a ser comentado ficará ente ":<<'STRING-DELIMITADORA'" e "STRING-DELIMITADORA". Notem que o texto "STRING-DELIMITADORA", pode ser uma sequência de caracteres qualquer, desde que não exista outra exatamente igual nas linhas que pretende comentar.

Exemplo usando a string SCML (acrônimo para Shell, Comentário Muito Longo):

:<<'SCML'

Passagem padrão original de Lorem Ipsum, usada desde o século XVI.

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

SCML

Opção 2

: '

'


Exemplo:

: '


Dois pontos, espaço aspa simples.
Várias linhas de código ou comentários depois...
...
Feche com uma aspa simples, mas atenção para não existir no meio do código ou texto que pretende comentar outra aspa simples.
'

Observações:
  1. Isto funciona apenas no shell bash, não funcionará para scripts feitos para o CSH ou ZSH.
  2. As opções descritas acima, fazem na verdade uso do comando nulo (:), devendo ser usadas com cuidado. São mais úteis na fase de construção e teste, como para comentar rapidamente alguma parte do código ao fazer um teste. Porém, ao distribuir para uso em produção, é mais seguro comentar com o #, tarefa que pode ser agilizada com o auxílio do seu editor de texto favorito.

No Vim/Vi, por exemplo, pode-se inserir o "#" em um intervalo de linhas facilmente. No modo de comando (Esc + :):

linhainicial,linhafinals/^/#/g[ENTER]

Exemplo:

15,43s/^/#/g

Fonte:
Outras dicas deste autor

Grid Window no Xfwm4 (Xfce) - Em sistemas que aceitem PPA

Driver "nvidia" no Mandrake/Mandriva com pacotes rpm

Recuperando ISOs corrompidas com torrent

Corrigindo bug 'Ghost' do GNU C Library (glibc) no CentOS 7

O que fazer após instalar Fedora 30 Worksatation

Leitura recomendada

Comunicação entre aplicativos com o qdbus no KDE 4

Executando comandos no telnet do Mikrotik via shell script

Debug em Shell Scripts

Canivete suíço em bash

Comandos mkdir e cd simultaneamente

  

Comentários
[1] Comentário enviado por edps em 22/05/2015 - 20:36h


Não é o site, mas é uma boa dica! rsrs

[2] Comentário enviado por AlvesUeliton em 26/05/2015 - 02:30h


@@ -0,1 +0,1 @@
-TITLE="Memories on TV"
+TITLE="MemoriesOnTV"
\

E isso tambem é script bash?
É utilizado no Site Playonlinux para destacar alterações no script.
As cores diferenciam:
- anterior em vermelho
+nova alteração em verde

Isto é genial!

[3] Comentário enviado por mario bugre em 28/09/2021 - 10:17h

: " comentario no bash e no sh com \' (aspas simples) e \" (duplas) escapando com barra invertida. "

# sed 7,12s/^/#/g script.sh
<<comentario-em-bloco
Eu crio um HERE DOCUMENT '<<' não redirecionando para nenhum comando,
ou seja, o Shell VAI INTERPRETAR o nosso HERE DOCUMENT,
mas não irá enviar para saída padrão (STDOUT).
comentario-em-bloco

#<<comentario-em-bloco
# (obs. esste tipo so funfa no terminal)
#: ' para este comentário em bloco
#coloque : ' " (dois-pontos+espaco+aspas(simples ou dupla)
#seu texto comentado e feche com, espaco+aspas(repita a que iniciar) '
#comentario-em-bloco



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts