você está aqui: Home  → Arquivo de Mensagens

Bash - Substituição por Processos

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 16 de abril de 2012

Esta dica permite que você use um processo em quase todos os lugares em que usaria um arquivo. Para ilustrar o conceito, vamos usar o comando diff. A maior parte das versões do diff permite que se passe exatamente o nome de dois arquivos como diretivas. Mas e se quisermos comparar algo como, por exemplo, o conteúdo de dois diretórios que não necessariamente existem em um arquivo? Aqui é onde usamos substituição por processos. Por exemplo, para obter as diferenças no conteúdo de dois diretórios, podemos usar o seguinte comando:

  diff <(find dir1) <(find dir2)

A sintaxe <(comando) cria um named pipe, e conecta a saída do comando (STDOUT) ao pipe. Então, tudo o que for lido do pipe estará na verdade lendo a saída de um comando. Para provar a você mesmo este conceito, tente o seguinte:

  $ echo <(/bin/true)
  /dev/fd/63
  $ ls -l <(/bin/true)
  lr-x------  1 jgm eng 64 Jul 13 21:50 /dev/fd/63 -> pipe:[31340331]
  $ file <(/bin/true)
  /dev/fd/63: broken symbolic link to pipe:[31340360]

Da mesma forma, você pode usar a sintaxe >(comando) para fazer com que um comando leia do pipe. Veja um exemplo:

  tar cvf >(gzip -c > dir.tar.gz) dir

É claro que existem formas melhores de se fazer isto, mas o que estamos tentando demonstrar aqui é a substituição por processo (process substitution).

Este texto foi traduzido e adaptado a partir do original em inglês "Two Cool Bash Tricks", de autoria de Greg Miller.

Observação: eu optei por usar, nesta tradução, o original named pipe ao invés das suas muitas traduções, como por exemplo canalização nomeada, conectores nomeados, tubos batizados e outras tantas variações. Como o termo está consagrado no meio técnico, achei que a dica ficaria mais clara desta forma. Da mesma forma, eu arrisquei traduzir o termo process substitution por substituição por processo. Espero ter acertado :-)


Veja a relação completa dos artigos de Rubens Queiroz de Almeida

 

 

Opinião dos Leitores

Arnaldo
17 Abr 2012, 08:43
A dica pode até ser útil, mas o que eu gostei mesmo foi do quadrinho explicando suas escolhas sobre tradução. Aprovadas 100%
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script