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

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

Re: [shell-script] Como fazer um bloco de comandos no laço ?


From: Julio C. Neves
Subject: Re: [shell-script] Como fazer um bloco de comandos no laço ?
Date: Fri, 1 May 2009 21:24:19 -0300

Fala Jeferson,
acho que o Flavio estava com prequiça de 1o. de maio e não te deu a resposta
completa. A empregabilidade do process substitution ao qual ele se referiu é
assim:

*while read LINHA
do

echo $LINHA

done < <(grep ok arquivo.conf)*

mas isso tb pode se feito assim:

*grep ok arquivo.conf |
while read LINHA
do

echo $LINHA

done*

Para ter uma boa explicação sobre esta técnica, leia isso
aqui<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo011#Substitui_o_de_processos>,
que está em português e cheio de bons exemplos. Aconselho no entanto ler
desde o início da página, pois os assuntos são interrelacionados.
-- 
Abração,
Julio
*Cursos de Shell e Zenity nos finais de semana:
- Em SP ligue (11) 2125-4747;
- Em DF ligue (61) 3223-3000 (Turma prevista para 09/05);
- No RJ darei um treinamento em julho (mande e-mail p/ detalhes);
- Turmas fechadas em outras cidades ligue (21) 8112-9988*

2009/5/1 Jeferson Santos <address@hidden>

>
>
> Aproveitando a mensagem...
> Como eu faço pra ao invés do programa receber de um arquivo na entrada
> padrão, receber o resultado de um comando. Algo como:
>
> while read LINHA;
> do
>
> echo $LINHA
>
> done < grep ok arquivo.conf
>
> Eu sei que assim não funciona. Como seria o certo?
>
> 2009/4/29 Cléoson Barreto <address@hidden<cleoson.barreto%40gmail.com>
> >
>
> >
> >
> > Olá!
> >
> > Acho que assim ainda dá pra eliminar um cat e um "|" (pipe):
> >
> >
> > while read d
> > do
> > chmod 755 $d &&
> > mv $d $DIR_DESTINO &&
> > ls $DIR_DESTINO/$d &&
> > if [ $? = 0 ]
> > then
> > rm ${DIR_ORIGEM}$d
> > fi
> > done < $DIR_ORIGEM/arquivos
> >
> > []'s
> > Cléoson.
> > http://farinhadigital.blogspot.com/
> >
> > 2009/4/29 Julio C. Neves 
> > <address@hidden<julio.neves%40gmail.com><julio.neves%
> 40gmail.com>>
> >
> > >
> > >
> > > Fala Leonardo,
> > > ninguém pode programar bem sem indentar os prgs. Por outro lado, não
> sei
> > pq
> > > vc usou tantas chaves (será que vc é de segurança e quer trancar tudo
> com
> > > as
> > > chaves? ;)
> > >
> > > *cat $DIR_ORIGEM/arquivos |
> > >
> > > while read d
> > > do
> > > chmod 755 $d &&
> > > mv $d $DIR_DESTINO &&
> > > ls $DIR_DESTINO/$d &&
> > > if [ $? = 0 ]
> > > then
> > > rm ${DIR_ORIGEM}$d
> > > fi
> > > done*
> > > --
> > > Abração,
> > > Julio
> > > *Cursos de Shell e Zenity nos finais de semana:
> > > - Em SP ligue (11) 2125-4747;
> > > - Em DF ligue (61) 3223-3000;
> > > - No RJ darei um treinamento em julho (mande e-mail p/ detalhes);
> > > - Turmas fechadas em outras cidades ligue (21) 8112-9988
> > > *
> > > 2009/4/29 Leonardo Bites <address@hidden<leonardo.bites%40gmail.com>
> <leonardo.bites%40gmail.com>
> > <leonardo.bites%40gmail.com>
> > > >
> > >
> > > >
> > > >
> > > > Alguem pode me ajudar em como fazer esse comando
> > > >
> > > > cat ${DIR_ORIGEM}/arquivos|while read d; do {chmod 755 ${d} && mv
> ${d}
> > > > ${DIR_DESTINO} && ls ${DIR_DESTINO}/${d} && if [ $? = 0 ]; then rm
> > > > ${DIR_ORIGEM}${d} fi} ; done
> > > >
> > > > sem receber esse bedinto erro
> > > >
> > > > bash: syntax error near unexpected token `done'
> > > >
> > > > Não sei como colacar esse bloco de comandos já tentei colocar em
> função
> > > mas
> > > > tambem não funcionou.
> > > >
> > > > Valeu galera
> > > > --
> > > > --
> > > > Leonardo Bites
> > > >
> > > > Linux Registered user #449087
> > > > ___________________________
> > > >
> > > > "Open Source for Open Minds"
> > > >
> > > > "Pensamentos tornam-se ações,
> > > >
> > > > ações tornam-se hábitos,
> > > >
> > > > hábitos tornam-se caráter,
> > > >
> > > > e nosso caráter torna-se nosso destino".
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> --
> Abraços,
> Jeferson Santos
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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