[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] lance estranho
From: |
Flavio Villalva Civatti |
Subject: |
Re: [shell-script] lance estranho |
Date: |
Thu, 20 Mar 2003 09:25:23 -0300 (BRT) |
On Wed, 19 Mar 2003, Ulysses Almeida wrote:
> On Wed, Mar 19, 2003 at 07:49:19PM -0300, aurelio wrote:
[...]
> > # (rm -f lixo ; sed 's/^/---/' > lixo) < lixo
[...]
> > sed fazendo edição "in-place" só usando redirecionamento e
> > magia negra :)
>
> WOW mesmo...
> se eu fizer algo do tipo comando > arq, ele nao cria/re-faz esse
> arquivo? intaum pq tenho que apagar ele antes? No que os parenteses
> influenciam?
Em tudo! A magia negra está neles...
> Realmente parece magia negra.....
>
> > no linux funcionou, no cygwin não.
> >
> > eu não manjo lhufas de kernel então não sei direito como isso
> > funciona, só tenho uma leve idéia, mas achei muito bacana.
>
> Mas isso tem mais a ver com o interpretador de comando do que com o
> kernel, nao? nesse caso seriam caracteristicas obscuras do bash, que
> podem ser enquadrados nos fenomenos da para-computacao!
Não é só do bash, testei com ksh e sh... funciona também!
O cara que mostrou isto (Björn) deu uma pequena explicação que o
Aurélio pode ter deixado passar despercebida:
"The method relies on the fact that a file is not unlinked as long as
it is being accessed"
Como os parenteses criam um subshell, acredito que o shell pai
mantenha uma imagem do arquivo que é usada como entrada para o sed até
que o subshell devolva o controle e o resultado... o arquivo alterado!
Agradeceria se alguém com mais conhecimentos dos processos do shell
pudesse esclarecer isto melhor.
Sds.
======================================================================
Flavio Villalva Civatti |PETROBRAS doesn't necessarily| \|/ ,,,, \|/
Av ACM 1113 s/416, Pituba| know, understand, | @~/ o0 \~@
Salvador, Bahia, Brasil | or agree with my opinions! | /_( \ _/ )_\
+55-71-3503677 (work) | | \ _U_/ jgs