Une sorte de redirection (?)

Le
Ph. Ivaldi
Bonjour,

Un programme, disons cmd1, admet un paramètre du genre -engine=cmd2
où cmd2 est un autre programme qui va traiter des données envoyées par cmd1.
Que dois-je mettre à la place de cmd2 pour récupérer dans un seul
fichier tout ce qui est envoyé par cmd1 ?

Merci.
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephane CHAZELAS
Le #17622051
2008-10-23, 15:19(+02), Ph Ivaldi:
Un programme, disons cmd1, admet un paramètre du genre -engine=cmd2
où cmd2 est un autre programme qui va traiter des données envoyées par cmd1.
Que dois-je mettre à la place de cmd2 pour récupérer dans un seul
fichier tout ce qui est envoyé par cmd1 ?


[...]

Si dans -engine=xxx, xxx est une ligne de commande shell, alors
tu peux faire

-engine='cat > /tmp/fichier'

Sinon, tu peux essayer

-engine='dd of=/tmp/fichier'

ou

-engine='tee /tmp/fichier'

Note que si cmd2 peut etre lancé plusieurs fois, il vaut
peut-etre mieux faire

-engine='cat >> /tmp/fichier'
ou
-engine='tee -a /tmp/fichier'

--
Stéphane
Ph. Ivaldi
Le #17622351
Le 23 octobre 2008, Stephane CHAZELAS écrivit :

-engine='cat > /tmp/fichier'



J'avais essayé ce genre de chose (avec des ") mais ça me renvoie
Cannot execute 'cat > /tmp/fichier' scrollmode
La vraie commande est:
asy -tex='cat > /tmp/fichier' essai2

Idem pour toutes les autres propositions.
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Jean-Marc Bourguet
Le #17622341
Ph. Ivaldi
Le 23 octobre 2008, Stephane CHAZELAS écrivit :

> -engine='cat > /tmp/fichier'

J'avais essayé ce genre de chose (avec des ") mais ça me renvoie
Cannot execute 'cat > /tmp/fichier' scrollmode
La vraie commande est:
asy -tex='cat > /tmp/fichier' essai2

Idem pour toutes les autres propositions.



Ecrire un petit script qui fait ce que tu veux?

A+

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Ph. Ivaldi
Le #17622811
Le 23 octobre 2008, Jean-Marc Bourguet écrivit :

Ecrire un petit script qui fait ce que tu veux?



J'ai essayé mais je n'arrive pas à "récupérer le flux" (désolé pour le
vocabulaire, je ne suis pas informaticien).

Par exemple comment donner à manger à ça
while read line; do echo -e "$linen"; done < ????
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Nicolas George
Le #17622801
Ph. Ivaldi wrote in message
J'ai essayé mais je n'arrive pas à "récupérer le flux" (désolé pour le
vocabulaire, je ne suis pas informaticien).

Par exemple comment donner à manger à ça
while read line; do echo -e "$linen"; done < ????



Tu as besoin d'un script parce que ton machin attend une commande simple,
juste un nom de fichier, mais dans le script lui-même, tu mets ce que tu
voulais mettre directement dans la commande : « cat > foo ».
Ph. Ivaldi
Le #17623231
Le 23 octobre 2008, Nicolas George écrivit :

tu mets ce que tu
voulais mettre directement dans la commande : « cat > foo ».



J'y ai aussi pensé mais il ne se passe pas grand chose.
Le fichier foo est bien créé mais il ne contient rien et la commande
cmd1 ne termine jamais.
Même en ne mettant que "exit 0;" dans le script, cmd1 ne termine pas.
cmd1 doit attendre quelque chose en retour...
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Alain Ketterlin
Le #17623221
Ph. Ivaldi
Le 23 octobre 2008, Stephane CHAZELAS écrivit :

-engine='cat > /tmp/fichier'



J'avais essayé ce genre de chose (avec des ") mais ça me renvoie
Cannot execute 'cat > /tmp/fichier' scrollmode
La vraie commande est:
asy -tex='cat > /tmp/fichier' essai2



Puisque c'est manifestement fait pour tex, j'imagine qu'il exec()
quelque chose de la forme :

cmd fichiertemp ...

Donc il faudrait te faire un script qui accepte au moins un argument.
(Pour ceux qui l'ignorent, tex ne lit pas sur son entrée standard.)

-- Alain.
Ph. Ivaldi
Le #17623341
Le 23 octobre 2008, Alain Ketterlin écrivit :

Puisque c'est manifestement fait pour tex,



Oui.

j'imagine qu'il exec()
quelque chose de la forme :
cmd fichiertemp ...



C'est bien possible mais je n'arrive pas à récupérer le nom du fichier.
Si je mets dans le script echo $* > /tmp/toto
le fichier /tmp/toto contient le texte scrollmode
et c'est tout.
En plus la commande initiale ne termine pas.
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Nicolas George
Le #17623511
Ph. Ivaldi wrote in message
J'y ai aussi pensé mais il ne se passe pas grand chose.
Le fichier foo est bien créé mais il ne contient rien et la commande
cmd1 ne termine jamais.
Même en ne mettant que "exit 0;" dans le script, cmd1 ne termine pas.



Alors c'est que ton programme maître ne fait pas ce que tu as décrit dans le
premier message du thread.
Jean-Marc Bourguet
Le #17625831
Ph. Ivaldi
Le 23 octobre 2008, Alain Ketterlin écrivit :

Puisque c'est manifestement fait pour tex,



Oui.

j'imagine qu'il exec()
quelque chose de la forme :
cmd fichiertemp ...



C'est bien possible mais je n'arrive pas à récupérer le nom du fichier.
Si je mets dans le script echo $* > /tmp/toto
le fichier /tmp/toto contient le texte scrollmode
et c'est tout.
En plus la commande initiale ne termine pas.



tex demande alors le fichier à lire sur la ligne de commande. Mais
en jouant un petit peu avec Asymptote -- que je ne connaissais pas --
j'ai l'impression qu'il relit la sortie de tex pour envoyer ce dont il
a besoin.

J'ai utilisé l'exemple de la doc. Un fichier asycap

#! /bin/sh

cat ~/asycap.reponse
cat - >> ~/asycap.res

exit 0

Avec asycap.reponse qui contenait

This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
%&-line parsing enabled.
entering extended mode
LaTeX2e <2005/12/01>
Babel yphenation, basque, french, ukenglish, loaded.


*

Sans fin de ligne après l'astérisque. Le contenu de asycap.reponse est
alors

newboxASYbox
newdimenASYdimen
defASYbase#1#2{setboxASYbox=hbox{#1}ASYdimen=htASYbox%
setboxASYbox=hbox{#2}lowerASYdimenboxASYbox}
defASYalign(#1,#2)(#3,#4)#5#6{leavevmode%
setboxASYbox=hbox{#6}%
setboxASYboxhbox{ASYdimen=htASYbox%
advanceASYdimen bydpASYboxkern#3wdASYboxraise#4ASYdimenboxASYbox}%
put(#1,#2){%
special{ps:gsave currentpoint currentpoint translate [#5 0 0] concat neg exch neg exch translate}%
boxASYbox%
special{ps:currentpoint grestore moveto}%
}}
defASYraw#1{
currentpoint currentpoint translate matrix currentmatrix
100 12 div -100 12 div scale
#1
setmatrix neg exch neg exch translate}
input graphicx
fontASYfont=cmr12ASYfont

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Publicité
Poster une réponse
Anonyme