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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Comentário em Bloco


From: MrBiTs
Subject: Re: [shell-script] Re: Comentário em Bloco
Date: Wed, 02 Nov 2011 07:58:16 -0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Salve, salve

> analisando bem o seu problema devo dizer uma coisa: comentarios em bash que 
> não sejam feitos com o caracter # inicial podem ser
> perigosos.

Poucas vezes na vida vejo afirmações tão corretas assim.

> 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.

Não deve ser nada difícil, claro, mudar um pouco o parser do bash para que ele 
reconheça /* e */ (por exemplo) como delimitadores
de comentários. Podemos até pegar o próprio código do parser do gcc e espetá-lo 
por ali.

> 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).

Você até pode trabalhar com uma macro do vim, usando C-R para cópia de bloco e 
uns comandos para inserir o que você quer, mas acho
que a maneira mais fácil seria assim:

- - Para marcar o bloco como comentário:

:LINHA_INICIAL,LINHAFINALs/^/#

- - Para remover as marcas de comentário do bloco:

:LINHA_INICIAL,LINHA_FINALs/#/

Se não sabe quais são as linhas, use :set nu e os seus números aparecerão.

Ainda podemos usar um SHIFT-V ou CTRL-V para entrar em "VISUAL MODE" do vim e 
marcar o bloco. Uma vez marcado, usamos um comando
assim:

:'<,'>s/^/#

Os sinais antes do s são inseridos automaticamente pelo vim quando estamos em 
visual mode. Isso evita a necessidade de digitar
faixa de linhas.

> 
> Uma reflexão:

Eu realmente não sei. Essas coisas todas, quando trazidas para shell-script, me 
parecem gambiarra demais. O : ' ou os HERE DOC são
absolutamente exploráveis porque o parser, no final das contas, sabe trabalhar 
com isso de uma maneira diferente da qual ele
trabalha quando encontra # na linha. Ou segue-se pelo caminho da mudança do 
parser no código-fonte ou usa-se recursos de editor.
Todos os editores modernos possuem isso, de uma maneira ou de outra.

- -- 

LLAP

.0. MrBiTs - address@hidden
..0 GnuPG  - 
http://keyserver.fug.com.br:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
000 http://www.mrbits.com.br


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBCAAGBQJOsRQzAAoJEG7IGPwrPKWrp48H/0pZ24eLYi8hBB9ZpYbTcdR5
qq6AytW4KzISJQPjzA8axJhzSTND/rqbCc7hTHH34rxpkmJU+BKkIiO6zSaVlXu9
S3JvMkIjEQvL8vvYaKxnr35qJzJDRWDpjb+qme3YJLj4qb5YSrBJquiNLV7zsASD
Is+zfcfnUy+UtcBAo/yGA1JkafPHZRf2bj9ztW7fhTUpcwksUUAOdXNox55oOMzC
Y6kLOaJFYPLwf+1rHPSSK9U4kOXPTGuqKhvDim3VPamziyPA0Hbz/H2aHss5D5h5
nlvS3icSnsG1DIjztW+KmT2OB//D4Z9OZgrresdWkP+5ZQlu3Xp3JFikRio1Rzw=
=SqxE
-----END PGP SIGNATURE-----


reply via email to

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