Saya sering menyalurkan output program menjadi lebih sedikit, mis
produce_output | less
Ini bekerja dengan baik, hingga produce_output
menghasilkan sejumlah besar output. Jika saya mencari beberapa teks yang jauh ke dalam file, kurangi laporan
Calculating line numbers... (interrupt to abort)
Jika saya menyela dengan Control + C, itu juga membunuh produce_output
, yang menghentikannya dari menghasilkan output lebih lanjut. Apakah ada cara untuk mengirim interupsi menjadi lebih sedikit, sehingga produce_output
terus berjalan?
Saya tahu saya bisa menggunakannya kill -INT less_process
, tetapi saya pikir harus ada solusi yang lebih baik.
kill
.select
untuk menunggu input baik dari file / pipa dan terminal secara bersamaan.F
mode (ikuti) bekerja. Pipa dan tyys dapat dipolusi dengan cara yang sama.Anda dapat menonaktifkan nomor baris dengan
pilihan.
sumber
Dalam bekerja dengan sejumlah besar output, saya merasa sangat membantu untuk mengirim output ke file dan menggunakan
tail -f
atauless +F
menonton, misalnya:The
2>&1
sintaks memastikan bahwa kedua stdout dan stderr pergi keout
--- menghapus bahwa jika Anda hanya ingin stdout akan file. Dengan cara ini, Anda dapat memeriksa output dengan berbagai cara (bahkan dari mesin yang berbeda) tanpa harus mengacaukan program yang memproduksi output.Catatan yang
2>&1
mungkin spesifik untuk bash (saya tidak yakin). Pastikan Anda memiliki ruang disk yang cukup untuk file output :-)sumber
2>&1
adalah POSIX, telanjang>&
adalah bashism.less +F
contoh saya; Saya baru saja memperbarui jawaban saya.less +F
(karenaless +F
memproses data seperti yang dihasilkan). Contoh yang saya berikan tidak memiliki masalah yang sama seperti aslinya diposting: ctrl + c tidak akan menggangguprocess_output
. Jika salah satu tidak peduli untuk fungsi 'mengikuti', salah satu dapat berjalanproduce_output > out 2>&1
, makaless out
. Masalahnyaproduce_output | less
adalah jika ada sesuatu yang merusak pipa (mis. Tidak sengaja mengenai 'q' dariless
), makaproduce_output
akan mati (tanpa penanganan SIGPIPE khusus).Anda juga bisa melakukan ini:
sumber