[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] ZSH
From: |
Gustavo Adolfo Kellermann |
Subject: |
Re: [shell-script] ZSH |
Date: |
Fri, 4 Jul 2003 14:30:39 -0300 |
On Thu, 03 Jul 2003 14:58:01 -0300
Listas XTMS <address@hidden> wrote:
....
> * ImportantÃssimo recurso: o processo original fica no lado direito de
> um pipe e não no esquerdo, como no bash. Assim:
>
> echo a | read x; echo $x
>
> no bash retorna nada, no zsh retorna a. Se você já programou
> seriamente em shell sabe que este detalhe no bash torna inviável loops
> while por pipe no bash, pois ele não conseguirá mudar variáveis
> externas dentro deste loop. Ex.:
Eu jah quebrei muito a cabeca com esse problema no bash, pois fazia loops
bem complexos usando while read. Em alguns casos, jah estava ateh pensando
em jogar o script fora e refazer em awk ou perl, onde nao haveria esse
problema.
No final do tutorial do Julio Neves no FISL 2003, iniciei uma rapida
conversa sobre como contornar esse problema, e surgiram sugestoes como
usar um arquivo temporario e depois o comando "." para incluir o arquivo.
Ou usar echo dentro do loop e capturar a stdout do loop numa variavel.
Mas acho que nada se compara a poder setar as variaveis diretamente,
dentro do loop.
>
> x=1
> echo "a
> b
> c
> d
> e
> f" | while read var
> do
> x="${x}${var}"
> done
> echo $x
>
> Tem muito mais coisa, mas acho que isso é suficiente pra uma
> explicaçãozinha *básica*. =)
>
--
**************************
Gustavo Adolfo Kellermann
address@hidden
Terra Networks Brasil S.A.
**************************
- ZSH, Listas XTMS, 2003/07/03
- Re: [shell-script] ZSH,
Gustavo Adolfo Kellermann <=