Envoyé par
disedorgue
[HUMOUR]De 1988 à 2009, il y a 21 ans, ou alors tu voulais dire 1989 et 2008 [/HUMOUR]
Ouch, il faudra que je réapprenne à compter ...
Sinon, le coproc de ksh que tu parles, c'est bien le fameux
|& ?
Oui, les co-processes ont été inventés par ksh avec la syntaxe |& qui me semble plus intuitive que coproc. On crée un pipe bidirectionnel et la commande est mise en arrière plan.
Si c'est celui-ci, il est tout de même limité à un seul coprocess à la fois, contrairement à celui plus explicite de bash qui permet d'en lancer plusieurs.
Ça se discute, j'aurais tendance à penser l'inverse. La syntaxe étendue de la commande coproc de bash permet bien de nommer les descripteurs de fichiers à sa convenance, mais la page de manuel de bash précise dans le chapitre BUGS:
There may be only one active coprocess at a time.
Voir aussi https://lists.gnu.org/archive/html/b.../msg00053.html
Côté ksh, il n'est nulle part précisé qu'un seul co-process est supporté et rien n’empêche d'en lancer plusieurs. Il suffit dans ce cas de préserver en les dupliquant les deux descripteurs de fichiers du dernier co-process exécuté avant de lancer le suivant, par exemple comme ça :
Mais cela dit, pour faire ce que permettent les co-processes, je préfère aujourd'hui plutôt utiliser des pipes nommés ou expect.
Partager