GNU/Linux >> Belajar Linux >  >> Linux

Piping stdout dan stderr di dalam aturan Makefile

Itu tidak menjelaskan mengapa pendekatan langsung tidak berhasil, tetapi itu berhasil:

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

Saya menemukan pertanyaan ini dengan masalah yang sama dan tidak puas dengan jawabannya. Saya memiliki TLBN biner yang gagal pada test case example2.TLBN .

Inilah yang pertama kali dilihat oleh file make saya.

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

Yang gagal dengan pesan kesalahan yang saya harapkan dan menghentikan proses pembuatan.

Ini perbaikan saya:

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

Perhatikan - di awal baris yang memberi tahu make untuk mengabaikan keluaran apa pun ke stderr.

Semoga ini bisa membantu seseorang yang memiliki masalah serupa.


Anehnya, saya memiliki masalah yang sama, dan menyelesaikannya seperti ini:

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

Saya tidak begitu yakin mengapa 2>&1 >errors.txt tidak berfungsi di sini, tetapi &> melakukan


Linux
  1. Cara Menginstal dan Menguji Ansible di Linux

  2. Bagaimana cara mengarahkan stderr dan stdout ke file berbeda di baris yang sama dalam skrip?

  3. DESTDIR dan PREFIX dari make

  1. Shell:redirect stdout ke /dev/null dan stderr ke stdout

  2. Memulihkan stdout dan stderr ke nilai default

  3. Mungkinkah deskriptor file linux 0 1 2 bukan untuk stdin, stdout dan stderr?

  1. Makefile untuk tidak melakukan apa-apa

  2. bash:redirect stderr ke file dan stdout + stderr ke layar

  3. Menangkap STDERR dan STDOUT ke file menggunakan tee