shell-script-pt
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]