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

[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



reply via email to

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