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

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

RES: RES: [shell-script] Erro no shell script


From: Rodolfo Villanova
Subject: RES: RES: [shell-script] Erro no shell script
Date: Tue, 22 Feb 2005 16:16:04 -0300

Fala, professor Julio!


Não tentei fazer adaptações à linha proposta pra ela executar sem erro;
copiei e colei no prompt dos ambientes em que convivo, e depois testei
também executando dentro de um arquivo que chama o /bin/ksh, mas a mensagem
de erro foi "quase" a mesma.

Num Compaq Tru64 UNIX V5.1A (Rev. 1885):

ksh: syntax error: `<' unexpected

Num SunOS 5.8:

ksh: syntax error: `(' unexpected


Grande abraço, amigão!
--------------------------
Rodolfo D. Gross Villanova

> -----Mensagem original-----
> De: Julio Cezar Neves - DATAPREVRJ
> [mailto:address@hidden]
> Enviada em: terça-feira, 22 de fevereiro de 2005 15:09
> Para: address@hidden
> Assunto: RES: RES: [shell-script] Erro no shell script
>
> Quequeisso gente!
>
> Sob o Bash:
>
> Prompt> while read arq; do ((i++)); echo Arq$i:$arq; done < <(ls)
> Arq1:a
> Arq2:AA
> Arq3:aaas
> Arq4:arch
> Arq5:arq1
> Arq6:arq10
> Arq7:arq2
> Prompt> echo $i
> 7
>
> Faça o mesmo com ls | while ... e ao fim do processo tente achar
> o valor de
> $i. Impossível! Isso pq o pipe criou um subshell que além de onerar a
> máquina, perdeu todo o ambiente criado no seu interior após o seu término.
>
> O nome disso é substituição de procecesso e eu *asseguro* a vcs
> que o bash e
> o ksh (a não ser que estejam capengas) suportam.
>
> Rodolfo, testa isso aí no ksh e conta para a lista, Tchê!
>
> [ ]s,
> Julio
> :wq
>
>
> | -----Mensagem original-----
> | De: Gustavo Chaves [mailto:address@hidden]
> | Enviada em: terça-feira, 22 de fevereiro de 2005 14:50
> | Para: address@hidden
> | Assunto: Re: RES: [shell-script] Erro no shell script
> |
> |
> |
> | >>>>> On Tue, 22 Feb 2005 13:29:32 -0300, "Renato L. Sousa"
> | <address@hidden> said:
> |
> |   > Hummmm... Estou usando o bash (/bin/bash), e pelo q vi o
> | sh no linux é
> |   > um link pro bash, então deveria funcionar, não ???
> |
> | Acho que sim.  Mas consegui reproduzir seu problema aqui.  Também não
> | entendi... parece que a bash não entende o redirecionamento de
> | processos depois de um while...done.
> |
> |   >> | while read user; do
> |   >> |    if [ -d $user -a $(grep -w $user /etc/passwd) ]; then
> |   >> |       echo -ne "Atribuindo quota do usuário $user...\t"
> |   >> |       edquota -u $dir  -p quota_model && echo "OK" ||
> | echo "Falhou"
> |   >> |    fi
> |   >> | done < <(ls /home)
> |
> | Consegui contornar o problema usando pipe ao invés do redirecionador.
> | Assim:
> |
> |         ls /home | while read user; do
> |             ...
> |         done
> |
> | Mas há outro problema.  Você deve colocar aspas em torno do $(grep...)
> | pois se ele não voltar nada o comando test (a.k.a. "[") vai reclamar
> | da falta de um argumento.  A versão final ficaria assim:
> |
> |     ls /home | while read user; do
> |        if [ -d $user -a "$(grep -w $user /etc/passwd)" ]; then
> |           echo -ne "Atribuindo quota do usuário $user...\t"
> |           edquota -u $dir  -p quota_model && echo "OK" ||
> | echo "Falhou"
> |        fi
> |     done
> |
> | Gustavo.
> |
> |
> | ---------------------------------------------------------------------
> | Esta lista não admite a abordagem de outras liguagens de
> | programação, como perl, C etc. Quem insistir em não seguir
> | esta regra será moderado sem prévio aviso.
> | ---------------------------------------------------------------------
> | Sair da lista: address@hidden
> | ---------------------------------------------------------------------
> | Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de
> programação, como perl, C etc. Quem insistir em não seguir esta
> regra será moderado sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------

Links do Yahoo! Grupos











reply via email to

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