Rediriger stdout et stderr dans une règle Makefile
Je veux rediriger la sortie d'un script à un autre programme. Quelque chose je l'aurais fait normalement à l'aide de ces deux formes:
python test.py 2>&1 | pyrg
python test.py |& pyrg
Mon problème est qu'il ne fonctionne pas à partir à l'intérieur d'un makefile:
[Makefile]
test:
python test.py 2>&1 | pyrg [doesn't work]
Je souhaite éviter d'écrire un fichier de script qui fait le travail.
Edit:
Cela semble être un pyrg
question:
python test.py 2>&1 | tee test.out // Writes to the file both stderr and stdout
cat test.out | pyrg // Works fine!
python test.py 2>&1 | pyrg // pyrg behaves as if it got no input
C'est une mauvaise solution pour moi car je n'arrive jamais à la cat
partie dans le cas d'un échec de test (tout est à l'intérieur d'un Makefile règle)
source d'informationauteur Xyand
Vous devez vous connecter pour publier un commentaire.
Je suis tombé sur cette question avec le même problème et n'était pas satisfait de la réponse. J'ai eu un binaire
TLBN
qui a échoué sur les cas de testexample2.TLBN
.C'est ce que mon fichier de créer regardé en premier.
Qui a échoué avec le message d'erreur que j'attendais d'elle et l'arrêt du processus make.
C'est mon fix:
Note le
-
au début de la ligne qui dit faire de l'ignorer toute sortie vers stderr.Espère que cela aide quelqu'un qui a un problème similaire.
Il n'explique pas pourquoi les approches simples ne fonctionnent pas, mais il ne l'astuce: