Descripteurs de fichiers, pipes... - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 28-10-2005 à 00:12:37
Je n'ai pas le souvenir qu'il y ai une commande qui fasse ca simplement.
Tu n'as pas un exemple plus concret ?
Marsh Posté le 28-10-2005 à 00:49:52
Tu peux toujours te programmer un utilitaire qui redirige la sortie standard de A vers l'entree standard de B et inversement.
Avec les fonctions "pipe", "dup/dup2", "system" et "fork", ca doit pas etre bien long a faire mais avec des commandes qui n'ont pas ete pensees pour ca a la base, y a sans doute risque de boucle infinie.
--Edit--
T'as un exemple precis pour illustrer ce que tu voudrais faire ?
Marsh Posté le 28-10-2005 à 01:35:33
Bah il veut juste des named pipes, nan ?
$ mkfifo A.fifo B.fifo |
(on notera la grande valeur utilitaire de ces scripts , ainsi que leur optimisation impressionante )
Marsh Posté le 28-10-2005 à 22:31:10
J'aurais aimé une réponse générale, c'est pourquoi je ne vous ai pas révélé les contenus de A et B, mais voici les détails :
Il y a 2 machines :
- "Développement" : ne contient aucune donnée à jour, mais sert à fournir du temps processeur pour des essais et des traitements lourds. Si cette machine plante c'est pas grâve.
- "Production" : contient les vraies données (toujours à jour, mais ça fait des gigas). Il est interdit de gaspiller du temps processeur sur cette machine, et si elle plante c'est la catastrophe.
Je dois faire des traitements lourds et risqués (donc exécutés sur la machine de "Développement") qui ont besoin de récupérer certaines données situées sur la machine de "Production".
J'avais donc pensé mettre tout mon Shell Script entre parenthèses (c'est A) et le faire dialoguer avec un ssh (c'est B) auquel A pourra envoyer des commandes (avec un echo) et récupérer les réponses en lisant l'entrée standard :
Code :
|
J'ai déjà utilisé ce procédé pour transférer des fichiers, comme ceci :
Code :
|
Mais si j'ai envie de connaître le nombre de lignes d'un gros fichier, je préfère faire un echo "wc -l toto" plutôt qu'un echo "get toto".
Marsh Posté le 27-10-2005 à 22:42:05
Soit A et B deux commandes UNIX (ou blocs de commandes). Si je veux que A parle à B, autrement dit que la sortie standard de A soit redirigée vers l'entrée standard de B, cela se note A | B. Comment faire pour que A parle à B et que B parle à A ?