[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Comentário em Bloco
From: |
andelnyr |
Subject: |
Re: Comentário em Bloco |
Date: |
Wed, 02 Nov 2011 13:56:19 -0000 |
User-agent: |
eGroups-EW/0.82 |
Prezados
Acabei me deparando com este problema do pior jeito. Realmente alguns comandos
comentados desta forma ( com "here strings" ) são processados e produziam erros
onde antes tudo funcionava corretamente.
O meu objetivo com esta estratégia de comentário em bloco não é exatamente
deixar um documento dentro do código, e sim ativar ou desativar trechos do
script para que eu continue a atividade de desenvolvimento.
No trabalho que estou desenvolvendo, as funções declaradas possuem uma série de
rotinas para tratamento de erros ( entradas vazias, busca por itens que não
existem, dados em número insuficiente e etc ) que são úteis somente durante uma
manutenção ou desenvolvimento.
Durante funcionamento normal do script , tais tratamentos para erros são
desnecessários uma vez que as interações humanas com as funções são realizadas
através de interfaces gráficas ou através da parâmetros oriundos de uma outra
aplicação e portanto não há a possibilidade de erros de digitação.
O que estou testando é uma forma segura de ligar ou desligar trechos do script
sem usar "if debug mode = on ; then...".
O que estou testando no momento é:
#inicio
linha1
linha2
linha3
#fim
linha4
linha5
com o "sed" troco as marcações por:
: ' #inicio
linha1
linha2
linha3
' #fim
linha4
linha5
e montei um script externo que "prepara" o script principal para o
desenvolvimento ou para o funcionamento normal.
Desta forma está sendo possível inibir ou ativar os trechos que desejo e no
momento estou avaliando qual o incremento de velocidade que este arranjo
produziu e se há algum comprometimento no funcionamento total.
Mais uma vez as orientações postadas no grupo estão sendo de aplicação imediata.
--- Em address@hidden, Tiago Peczenyj <tiago.peczenyj@...> escreveu
>
> andelnyr
>
> analisando bem o seu problema devo dizer uma coisa: comentarios em bash que
> não sejam feitos com o caracter # inicial podem ser perigosos.
>
> por exemplo
>
> : <<EOF
>
> `comando malicioso 2>&-`
>
> EOF
>
> vai executar o comando malicioso e o resultado sera omitido da >stdin!
>
> e outras alternativas como colocar dentro de uma grande "string" ou
> subfuncao esbarram no problema do delimitador. se vc quiser colocar aspas
> ou um } sozinho pode gerar um erro de parsing do script. desnecessário, uma
> vez que é um comentário.
>
> A unica forma segura de não ter surpresa com comentarios é iniciando com #
> e editores de texto modernos podem inserir isso automagicamente se for o
> caso (deve ter algum atalho do vim que faça isso, por exemplo).
>
> Uma reflexão: Perl possui o recurso de POD (Plain old documentation format)
> que não apenas cria uma documentação do codigo que pode ser visto como uma
> man-page ou gerado html, pdf, etc como admite criar (algo como) blocos de
> comentário via instrução =cut E este recurso ficaria otimo em um shell
> script. Outras linguagens tem uma forma de adicionar marcações especiais e
> de la extrair alguma coisa util (javadoc , rdoc, etc). Dei uma googleada
> agora e encontrei isto:
>
> http://bahut.alma.ch/2007/08/embedding-documentation-in-shell-script_16.html
>
> Entretanto creio que pode ter os mesmos problema de segurança - como
> colocar um $(rm -rf /) mas ja é alguma coisa. Dei mais uma googleada e
> encontrei isto - parece promissor mas para ksh:
>
> http://www.unixlabplus.com/unix-prog/shdoc/shdoc_article.html
>
> Enfim, não encontrei nenhuma forma "canonica" de fazer o que não quer dizer
> que não exista. Para mim documentar e comentarios em bloco são coisas de
> certa forma relacionadas por isso trouxe a tona o POD mas poderia falar do
> txt2tags, markdown ou outras linguagens de marcação