GNU/Linux >> Tutoriels Linux >  >> Linux

Tuyauterie stdout et stderr à l'intérieur d'une règle Makefile

Cela n'explique pas pourquoi les approches directes ne fonctionnent pas, mais cela fait l'affaire :

[Makefile]
test: 
    python test.py >test.out 2>&1; pyrg <test.out

Je suis tombé sur cette question avec le même problème et je n'étais pas satisfait de la réponse. J'avais un TLBN binaire qui a échoué sur le cas de test example2.TLBN .

C'est ce que mon fichier make a regardé en premier.

make:
     ./TLBN example2.TLBN > ex2_output.txt

Ce qui a échoué avec le message d'erreur que j'attendais et interrompant le processus de création.

Voici ma solution :

make:
    -./TLBN example2.TLBN > ex2_output.txt 2>&1

Notez le - au début de la ligne qui indique à make d'ignorer toute sortie vers stderr.

J'espère que cela aidera quelqu'un qui a un problème similaire.


Étrangement, j'ai eu le même problème et je l'ai résolu comme ceci :

check-errors:
    check-for-errors.sh &> errors.txt

Je ne sais pas vraiment pourquoi 2>&1 >errors.txt n'a pas fonctionné ici, mais &> a fait


Linux
  1. Comment installer et tester Ansible sur Linux

  2. Comment rediriger Stderr et Stdout vers différents fichiers et également les afficher dans le terminal ?

  3. Afficher uniquement Stderr à l'écran, mais écrire à la fois Stdout et Stderr dans un fichier ?

  4. Echo à la fois stdout et stderr

  5. Est-il sûr de désactiver la mise en mémoire tampon avec stdout et stderr ?

Comment rediriger stderr vers stdout dans Bash

Confus à propos de stdin, stdout et stderr ?

Comment rediriger stderr et stdout vers différents fichiers dans la même ligne de script ?

Restauration de stdout et stderr à la valeur par défaut

Est-il possible que le descripteur de fichier Linux 0 1 2 ne soit pas pour stdin, stdout et stderr ?

bash :redirige stderr vers le fichier et stdout + stderr vers l'écran