Karena jumlah keluaran tidak pasti, tidak masuk akal untuk bash
untuk menyimpannya untuk Anda untuk ditampilkan kembali. Namun ada solusi alternatif untuk masalah Anda:
tee
perintah memungkinkan Anda untuk menduplikasi aliran keluaran ke file. Jadi jika Anda ingin menggunakan file untuk penyimpanan sementara, Anda dapat melakukan hal seperti ini:
make | tee output.txt
grep "warning" output.txt
Solusi ini menghindari menjalankan make
dua kali, yang bisa jadi (a) mahal dan (b) tidak konsisten:pembuatan kedua mungkin melakukan lebih sedikit pekerjaan daripada yang pertama karena beberapa target sudah dibuat pertama kali.
Catatan:Saya belum mencoba ini. Anda mungkin perlu mengutak-atik penggabungan error dan aliran keluaran, atau semacamnya.
Anda dapat melakukan ini:
make
!! | grep "warning"
Dengan menggunakan !!
Anda menyuruhnya mengulangi perintah terakhir di tempat itu, bersama dengan perintah bash lain yang ingin Anda tambahkan.
Kelemahannya adalah jika perintah yang Anda ulangi membutuhkan waktu lama untuk dieksekusi, Anda akan memiliki waktu lebih lama untuk menunggu kecuali Anda menyimpan output dari perintah sebelumnya ke file output terlebih dahulu.