Saya mencoba perintah berikut setelah menonton video ini di shenanigans pipa.
man -k . | dmenu -l 20 | awk '{print $1}' | xargs -r man -Tpdf | zathura -
Ini pada dasarnya mencetak daftar halaman manual ke dmenu agar pengguna dapat memilih salah satunya, kemudian menggunakan xargs untuk menjalankan man -Tpdf %
(mencetak untuk stdout pdf dari manpage git dari input xargs ') dan meneruskan pdf ke pembaca pdf (zathura ).
Masalahnya adalah (seperti yang Anda lihat dalam video) pembaca pdf dimulai bahkan sebelum saya memilih satu halaman manual di dmenu. Dan jika saya mengklik Esc dan tidak memilih, pembaca pdf masih terbuka tanpa menunjukkan dokumen sama sekali.
Bagaimana saya bisa membuat pembaca pdf (dan perintah lain dalam rantai pipa) hanya berjalan ketika inputnya mencapai akhir file atau ketika menerima input sama sekali? Atau, sebagai alternatif, bagaimana saya bisa membuat rantai pipa berhenti setelah salah satu perintah berantai mengembalikan status keluar yang tidak nol (sehingga jika dmenu mengembalikan kesalahan karena tidak memilih opsi, perintah berikut tidak dijalankan)?
pipefail
opsi bash yang disebutkan dalam jawaban Kusalandanda.