process substitution (was: erreur dans boucle while)

Vincent Lefevre vincent at vinc17.org
Mon Dec 17 13:19:31 CET 2007


On 2007-12-17 10:51:30 +0100, Clement Hermann wrote:
> Quelle est la différence avec l'utilisation d'un pipe, en pratique ? 

C'est utile quand on ne fait pas une redirection. Par exemple,
j'utilise le script suivant:

------------------------------------------------------------------
#!/usr/bin/env zsh

# Diffs two PDF files using pdftotext.

emulate -LR zsh

if [[ $# -lt 2 ]] then
  echo "Usage: pdfdiff [diff_options] file1.pdf file2.pdf" >&2
  return 1
fi

tdiff <(pdftotext "$@[-2]" -) <(pdftotext "$@[-1]" -)
------------------------------------------------------------------

tdiff est simplement un wrapper à diff; il est disponible ici:

  http://www.vinc17.org/unix/#tdiff

Même avec des redirections, c'est utile en zsh avec les multios
(man zshmisc, section MULTIOS).

Dans la section Process Substitution, zsh donne l'exemple suivant:

              paste <(cut -f1 file1) <(cut -f3 file2) |
              tee >(process1) >(process2) >/dev/null

et avec les multios:

  paste <(cut -f1 file1) <(cut -f3 file2) > >(process1) > >(process2)

-- 
Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


More information about the Shell mailing list