[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] arquivos com espaco no nome
From: |
Julio Neves |
Subject: |
Re: [shell-script] arquivos com espaco no nome |
Date: |
Tue, 29 May 2001 09:58:14 -0300 |
E se vc fizer asim sem o pipe:
A=0
while read linha; do
A=$((A+1))
done < arquivo
echo $A
Vc perde em legibilidade mas deve ganhar o set -x de volta.
[ ]s,
Julio
Favor responder a address@hidden
Enviado Por: <address@hidden>
Para: <address@hidden>
cc:
Assunto: Re: [shell-script] arquivos com espaco no nome
Julio Neves, @ 23/05/01 - 17:08:
> > Eu parei de usar while desde que descobri o problema dele de não
> > exportar as variáveis para o shell "pai"...
> Eliphas, o que vc significa esta sua frase acima? Não entendi. Como vc
> exporta variável para o Shell pai sem uso de aspas ou $(...)?
Acho que fui pouco descritivo com essa frase aà encima. Relendo agora vejo
que tá difÃcil de entender o que quis dizer ':)
Eu não gosto do while pelo fato de sempre usá-lo para ler de um pipe:
A=0
cat arquivo | while read linha; do
A=$((A+1))
done
echo $A
Isso vai me retornar: zero, ao invés do que eu queria, a quantidade de
linhas do arquivo. Ao usar o pipe, o shell abre uma subshell para resolver
o resto dos comandos (while;do;done), e o que se configura aà dentro se
perde ao voltar para o shell pai...
Sem contar que o que está dentro de um while não aparece quando rodando o
script em modo debug (sh -x script), em alguns scripts meus. Não parei pra
ver a causa, se é por estar em funções ou algo mais complicado, mas como
não uso mais isso, nem me preocupo ':)
Esse é um exemplo, mas há outros, que depois do programa pronto você fica
procurando o problema e _sempre_ tá no maldito while.
Então, dou a preferência total para o for. Se o for não aguentar (excesso
de parâmetros), faço em etapas. O excesso de parâmetros só aconteceu uma
vez ':)
--
Eliphas
Get forgiveness now -- tomorrow you may no longer feel guilty.
Sair da lista: address@hidden
Banco Dados: http://www.egroups.com/group/shell-script
Seu uso do Yahoo! Groups é sujeito às regras descritas em:
http://docs.yahoo.com/info/terms/