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

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

Re: [shell-script] Acho que eh eval


From: Gustavo Chaves
Subject: Re: [shell-script] Acho que eh eval
Date: 02 May 2005 14:57:37 -0300
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

(Essa mensagem ficou no meu folder de drafts por vários dias.  Só
agora consegui voltar pra ela.)

>>>>> On Thu, 28 Apr 2005 22:59:22 -0300 (BRT), Felipe Kellermann 
>>>>> <address@hidden> said:

  > On Thu, 28 Apr 2005 1:21pm  -0300, Gustavo Chaves wrote:
  >> Julio, eu acho que o Felipe tem razão quando fala do problema de
  >> desempenho desta solução.  O xargs vai disparar um processo diferente
  >> pra cara linha do arquivo Relatorio_de_nomes_incompleto.txt.  Eu usei

  > Nem tanto exatamente pelo desempenho. Se falei isso, foi para enfatizar 
  > esse uso de um monte de processos. So achei a solucao (muito) feia :-)

  > Qual seria a finalidade? Executar tudo em uma linha ou executar o negocio 
  > de forma arrumada, organizada, simples, usando *apenas* o shell, etc?

Essa é uma boa questão pra qual muitas vezes cada um de nós tem uma
resposta que não manifestamos.  E creio que isso acabe gerando uma boa
dose de confusão.

O fato é que nem sempre temos os mesmos requisitos ao criar um script.
Assumindo que a "correção" do script seja sempre um requisito
fundamental (se bem que até isso é passível de contestação), os demais
como desempenho, concisão, clareza, simplicidade e "pureza shelliana",
têm importância variável, dependendo do contexto e do problema que se
pretende resolver.

Além disso, alguns destes requisitos não têm uma métrica objetiva que
possa determinar se uma solução é melhor que a outra.  Vai depender,
muitas vezes, da experiência anterior do programador.

Por exemplo, o Julio parece gostar bastante dos redirecionamentos de
processos <().  Eu já acho mais claro usar pipes, mas em muitas
situações a questão é puramente estética.

Eu também nunca encarei a shell (ou as shells) como linguagens de
programação de propósito geral, de modo que pessoalmente eu nunca
considerei "pureza shelliana" como um requisito.  Isso está
relacionado com a velha idéia de que o ideal do Unix é criar
ferramentas simples com propósitos únicos e que possam ser combinadas
para criar soluções mais complexas.  Neste contexto, a shell entra
como a "cola" que une e integra outras ferramentas como cat, sed, cp,
mv, etc.

Sei que há algumas shells mais sofisticadas que podem ser usadas como
linguagens de propósito geral, como a zsh e a ksh, mas eu nunca
aprendi a usá-las como tal.  Quando o problema exige um grau de
complexidade maior (geralmente com o uso de estruturas de dados mais
sofisticadas) eu apelo direto pra uma linguagem dinâmica tradicional.
(Não vou citar o nome da que eu uso pois ela foi banida de acordo com
o rodapé das mensagens. :-)

Gustavo.


reply via email to

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