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

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

Re: RES: [shell-script] lance estranho


From: aurelio
Subject: Re: RES: [shell-script] lance estranho
Date: Thu, 20 Mar 2003 14:54:23 -0300 (ART)

grande jose!

obrigado por iluminar nossas mentes!
realmente show a explicação!

eu também recebi a explicação do Fabio Olivé,
amigão de Conectiva que disse a mesma coisa mas com
outras palavras. Só vou colar aqui pra reforçar blz?


> De: Fábio Olivé Leite <address@hidden>
> Para: address@hidden
>
> Olá!
> Fala Aurélio! Um mail teu apareceu aqui no GULP e me senti obrigado
> a analisar como é que o bichinho funciona. :)
> 
>   (rm -f lixo ; sed 's/^/---/' > lixo) < lixo
> 
> Mas bah! E o pior é que é muito bem pensado mesmo! Vejamos:
> 
> A construção "(comando)" no bash faz com que "comando" seja executado
> em um subshell. Este é outro processo que precisa ser iniciado e 
> escalonado. Já o redirecionamento de entrada desse subshell será 
> feito no próprio shell onde o comando foi digitado, antes do subshell
> ser iniciado.
> 
> Sendo assim o inode do arquivo "lixo" vai estar aberto e plugado na 
> entrada do subshell antes de ele começar a executar os comandos. 
> Quando ele começa a executar, ele remove o arquivo, mas isso apenas 
> retira o nome dele do diretório, pois ainda existe uma referência ao 
> inode (a entrada do subshell) e seu conteúdo só será removido do 
> disco quando o subshell terminar e fechar o inode da entrada.
> 
> O subshell então roda o sed redirecionando sua saída para um novo 
> arquivo "lixo" (novo pois agora não existe no diretório), que pega 
> outro inode, e tudo funciona como deveria.
> 
> Isto não funciona no cygwin porque os windão não possuem o mesmo 
> esquema de inodes e contagem de referências aos inodes que os unixes.
> 
> Quando o rm rodar, o arquivo que seria lido pelo subshell vai pro 
> saco, junto com seu conteúdo.


=====
-- 
aurelio

_______________________________________________________________________
Busca Yahoo!
O serviço de busca mais completo da Internet. O que você pensar o Yahoo! 
encontra.
http://br.busca.yahoo.com/


reply via email to

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