OVH Cloud OVH Cloud

Syntaxe d'un pipe avec une commande a arguments

29 réponses
Avatar
Frederic
Bonjour,

je voudrai réaliser l'opération suivante : j'ai une commande que je nommerai
ma_commande qui me retourne un chemin absolu (/home/user/fred par exemple). Je
voudrai copier le contenu de ce répertoire dans le répertoire "toto". Mon idée
est quelque chose comme ça :

ma_commande | cp $1 toto

mais ce système avec $1 ne fonctionne pas. Comment faire pour appeler le
résultat de "ma_commande" avec cp ?

Voilà, en espérant avoir été clair

Fred.
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/

9 réponses

1 2 3
Avatar
noa
Pascal Bourguignon a écrit:

noa writes:

Frederic a écrit:


Bonjour,

je voudrai réaliser l'opération suivante : j'ai une commande que je
nommerai ma_commande qui me retourne un chemin absolu (/home/user/fred
par exemple). Je voudrai copier le contenu de ce répertoire dans le
répertoire "toto". Mon idée est quelque chose comme ça :

ma_commande | cp $1 toto

mais ce système avec $1 ne fonctionne pas. Comment faire pour appeler
le résultat de "ma_commande" avec cp ?

Voilà, en espérant avoir été clair

Fred.
peut-être que tu pourrais essayer avec:

mkfifo tube;ls>tube& cp `cat tube` tmp;rm tube
tu remplaces ls par ta commande


Bin oui, pourquoi ne pas faire des usines à gas, autant en profiter,
C'est une alternative qui marche aussi (heureusement) :-)

J'ai repris la forme qu'il veut sans savoir s'il y avait une application
ma_commande | cp $1 toto
Je conteste pas ta solution que je ferais, je vais pas me casser la tête à



faire ce truc.

Pourrais-tu en dire plus sur les implications précises des 2 méthodes? Et
pourquoi il ne peut y avoir d'application de l'utilisation d'un tube nommé,
ça m'aiderai pour mieux comprendre le fonctionnement des flux.
J'ai fait un essai de transfert d'un gros volume d'informations avec find/cp
avec les 2 commandes

c'est gratuit tout ces tubes!
Comment on peut évaluer le coût du tube?



le test que j'ai effectué, sans garantie de précision puisque d'autres
processus tournent

## avec tube nommé
1 (ordre des tests
0.68user 23.96system 2:07.32elapsed 19%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+72minor)pagefaults 0swaps
[1]+ Done find 14/rdf/ >tube

4
0.52user 34.47system 2:08.65elapsed 27%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+72minor)pagefaults 0swaps
[1]+ Done find 14/rdf/ >tube

5
0.54user 35.84system 1:49.90elapsed 33%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+71minor)pagefaults 0swaps
[1]+ Done find 14/rdf/ >tube

## sans tube nommé
2
0.55user 32.81system 2:10.61elapsed 25%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+71minor)pagefaults 0swaps

3
0.59user 37.32system 1:58.37elapsed 32%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+72minor)pagefaults 0swaps

6
0.72user 37.77system 2:08.01elapsed 30%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+71minor)pagefaults 0swaps
~
~
~

les tests ont été effectués 2 par 2 en alternance avec des temps de pause
entre 2 essais pour limiter l'interaction des autres processus qui tournent
on constate que la charge CPU est plus élevée sans tube nommé, le temps
d'exécution aussi dans une moindre mesure... ce qui n'est pas une preuve
d'économie de ressources...


Autre chose:
Est-ce que le coût entre un flux de commandes et une fonction qui restitue
le flux est le même?
EXEMPLE
flux de commande ou {fonction qui envoie ce flux} ou {fichier exécuté qui
envoie ce flux}

merci d'avoir tout lu :-)

--
noa
ouv a s à cdm, g



Avatar
noa
Pascal Bourguignon a écrit:

noa writes:

Frederic a écrit:


Bonjour,

je voudrai réaliser l'opération suivante : j'ai une commande que je
nommerai ma_commande qui me retourne un chemin absolu (/home/user/fred
par exemple). Je voudrai copier le contenu de ce répertoire dans le
répertoire "toto". Mon idée est quelque chose comme ça :

ma_commande | cp $1 toto

mais ce système avec $1 ne fonctionne pas. Comment faire pour appeler
le résultat de "ma_commande" avec cp ?

Voilà, en espérant avoir été clair

Fred.
peut-être que tu pourrais essayer avec:

mkfifo tube;ls>tube& cp `cat tube` tmp;rm tube
tu remplaces ls par ta commande


Bin oui, pourquoi ne pas faire des usines à gas, autant en profiter,
C'est une alternative qui marche aussi (heureusement) :-)

J'ai repris la forme qu'il veut sans savoir s'il y avait une application
ma_commande | cp $1 toto
Je conteste pas ta solution que je ferais, je vais pas me casser la tête à



faire ce truc.

Pourrais-tu en dire plus sur les implications précises des 2 méthodes? Et
pourquoi il ne peut y avoir d'application de l'utilisation d'un tube nommé,
ça m'aiderai pour mieux comprendre le fonctionnement des flux.
J'ai fait un essai de transfert d'un gros volume d'informations avec find/cp
avec les 2 commandes

c'est gratuit tout ces tubes!
Comment on peut évaluer le coût du tube?



le test que j'ai effectué, sans garantie de précision puisque d'autres
processus tournent

## avec tube nommé
1 (ordre des tests
0.68user 23.96system 2:07.32elapsed 19%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+72minor)pagefaults 0swaps
[1]+ Done find tmp/donnees/ >tube

4
0.52user 34.47system 2:08.65elapsed 27%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+72minor)pagefaults 0swaps
[1]+ Done find tmp/donnees/ >tube

5
0.54user 35.84system 1:49.90elapsed 33%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+71minor)pagefaults 0swaps
[1]+ Done find tmp/donnees/ >tube

## sans tube nommé
2
0.55user 32.81system 2:10.61elapsed 25%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+71minor)pagefaults 0swaps

3
0.59user 37.32system 1:58.37elapsed 32%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+72minor)pagefaults 0swaps

6
0.72user 37.77system 2:08.01elapsed 30%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+71minor)pagefaults 0swaps
~
~
~

les tests ont été effectués 2 par 2 en alternance avec des temps de pause
entre 2 essais pour limiter l'interaction des autres processus qui tournent
on constate que la charge CPU est plus élevée sans tube nommé, le temps
d'exécution aussi dans une moindre mesure... ce qui n'est pas une preuve
d'économie de ressources...


Autre chose:
Est-ce que le coût entre un flux de commandes et une fonction qui restitue
le flux est le même?
EXEMPLE
flux de commande ou {fonction qui envoie ce flux} ou {fichier exécuté qui
envoie ce flux}

merci d'avoir tout lu :-)

--
noa
ouv a s à cdm, g



Avatar
noa
Pascal Bourguignon a écrit:

noa writes:

Frederic a écrit:


Bonjour,

je voudrai réaliser l'opération suivante : j'ai une commande que je
nommerai ma_commande qui me retourne un chemin absolu (/home/user/fred
par exemple). Je voudrai copier le contenu de ce répertoire dans le
répertoire "toto". Mon idée est quelque chose comme ça :

ma_commande | cp $1 toto

mais ce système avec $1 ne fonctionne pas. Comment faire pour appeler
le résultat de "ma_commande" avec cp ?

Voilà, en espérant avoir été clair

Fred.
peut-être que tu pourrais essayer avec:

mkfifo tube;ls>tube& cp `cat tube` tmp;rm tube
tu remplaces ls par ta commande


Bin oui, pourquoi ne pas faire des usines à gas, autant en profiter,
C'est une alternative qui marche aussi (heureusement) :-)

J'ai repris la forme qu'il veut sans savoir s'il y avait une application
ma_commande | cp $1 toto
Je conteste pas ta solution que je ferais, je vais pas me casser la tête à



faire ce truc.

Pourrais-tu en dire plus sur les implications précises des 2 méthodes? Et
pourquoi il ne peut y avoir d'application de l'utilisation d'un tube nommé,
ça m'aiderai pour mieux comprendre le fonctionnement des flux.
J'ai fait un essai de transfert d'un gros volume d'informations avec find/cp
avec les 2 commandes

c'est gratuit tout ces tubes!
Comment on peut évaluer le coût du tube?



le test que j'ai effectué, sans garantie de précision puisque d'autres
processus tournent

## avec tube nommé
1 (ordre des tests
0.68user 23.96system 2:07.32elapsed 19%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+72minor)pagefaults 0swaps
[1]+ Done find donnees/ >tube

4
0.52user 34.47system 2:08.65elapsed 27%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+72minor)pagefaults 0swaps
[1]+ Done find donnees/ >tube

5
0.54user 35.84system 1:49.90elapsed 33%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+71minor)pagefaults 0swaps
[1]+ Done find donnees/ >tube

## sans tube nommé
2
0.55user 32.81system 2:10.61elapsed 25%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+71minor)pagefaults 0swaps

3
0.59user 37.32system 1:58.37elapsed 32%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+72minor)pagefaults 0swaps

6
0.72user 37.77system 2:08.01elapsed 30%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (187major+71minor)pagefaults 0swaps
~
~
~

les tests ont été effectués 2 par 2 en alternance avec des temps de pause
entre 2 essais pour limiter l'interaction des autres processus qui tournent
on constate que la charge CPU est plus élevée sans tube nommé, le temps
d'exécution aussi dans une moindre mesure... ce qui n'est pas une preuve
d'économie de ressources...


Autre chose:
Est-ce que le coût entre un flux de commandes et une fonction qui restitue
le flux est le même?
EXEMPLE
flux de commande ou {fonction qui envoie ce flux} ou {fichier exécuté qui
envoie ce flux}

merci d'avoir tout lu :-)

--
noa
ouv a s à cdm, g



Avatar
Laurent Wacrenier
noa écrit:
c'est gratuit tout ces tubes!
Comment on peut évaluer le coût du tube?



Ça bouffe inutilement l'espace de nomage, docn c'estrès cher.


Avatar
noa
Laurent Wacrenier a écrit:

noa écrit:
c'est gratuit tout ces tubes!
Comment on peut évaluer le coût du tube?



Ça bouffe inutilement l'espace de nomage, docn c'estrès cher.
tu n'as pas lu le message, tu ne réponds pas à mon problème: cher en quoi?

mémoire, CPU, disque,...?
A quoi sert un tube nommé si ce n'est à cette application, même si je ne
vois pas à quoi ça pourrait avancer (c'est ce que je veux savoir)...

--
noa
ouv a s à cdm, g



Avatar
noa
Laurent Wacrenier a écrit:

noa écrit:
c'est gratuit tout ces tubes!
Comment on peut évaluer le coût du tube?



Ça bouffe inutilement l'espace de nomage, docn c'estrès cher.
tu n'as pas lu le message, tu ne réponds pas à mon problème: cher en quoi?

mémoire, CPU, disque,...?
A quoi sert un tube nommé si ce n'est à cette application...


--
noa
ouv a s à cdm, g



Avatar
Laurent Wacrenier
noa écrit:
c'est gratuit tout ces tubes!
Comment on peut évaluer le coût du tube?



Ça bouffe inutilement l'espace de nomage, docn c'estrès cher.
tu n'as pas lu le message, tu ne réponds pas à mon problème: cher en quoi?

mémoire, CPU, disque,...?


Cher en espace de nommage. Ce qui implique gestion des conflits,
vérous, permission, etc. que tu n'as pas pris en compte.

A quoi sert un tube nommé si ce n'est à cette application, même si je ne
vois pas à quoi ça pourrait avancer (c'est ce que je veux savoir)...


Cette application est une mauvaise application du tube nommé.
Ils ne sont pas fait pour émuler des tubes anonymes.




Avatar
noa
Laurent Wacrenier a écrit:

noa écrit:
c'est gratuit tout ces tubes!
Comment on peut évaluer le coût du tube?



Ça bouffe inutilement l'espace de nomage, docn c'estrès cher.
tu n'as pas lu le message, tu ne réponds pas à mon problème: cher en

quoi? mémoire, CPU, disque,...?


Cher en espace de nommage. Ce qui implique gestion des conflits,
vérous, permission, etc. que tu n'as pas pris en compte.


Pourrais-tu me donner l'adresse d'une page qui explique le problème?


A quoi sert un tube nommé si ce n'est à cette application, même si je ne
vois pas à quoi ça pourrait avancer (c'est ce que je veux savoir)...


Cette application est une mauvaise application du tube nommé.
Ils ne sont pas fait pour émuler des tubes anonymes.
Alors à quoi ça sert?

Donne un exemple d'application des tubes nommés.

Le test que j'ai effectué qui montrait un traitement plus rapide avec un
tube nommé qu'avec un tube anonyme serait donc erroné selon toi?

--
noa
ouv a s à cdm, g





Avatar
Stephane Chazelas
Le Tue, 21 Oct 2003 21:35:36 +0200, noa écrivait :
[...]
Cette application est une mauvaise application du tube nommé.
Ils ne sont pas fait pour émuler des tubes anonymes.
Alors à quoi ça sert?

Donne un exemple d'application des tubes nommés.
[...]


http://groups.google.com/groups?q=group%3Afr.comp.os.unix+mkfifo&scoring=d
http://groups.google.com/groups?q=group%3Acomp.unix.shell+mkfifo&scoring=d

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]


1 2 3