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

[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/ 







reply via email to

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