Saya telah memipipkan baris dalam skrip bash dan ingin memeriksa apakah pipa tersebut memiliki data, sebelum memasukkannya ke suatu program.
Mencari yang saya temukan test -t 0
tetapi tidak berhasil di sini. Selalu mengembalikan false. Jadi bagaimana memastikan bahwa pipa itu memiliki data?
Contoh:
echo "string" | [ -t 0 ] && echo "empty" || echo "fill"
Keluaran: fill
echo "string" | tail -n+2 | [ -t 0 ] && echo "empty" || echo "fill"
Keluaran: fill
Tidak seperti standar / cara kanonik untuk menguji apakah sebelumnya pipa menghasilkan output? input perlu dipertahankan untuk meneruskannya ke program. Ini menggeneralisasi Bagaimana menyalurkan output dari satu proses ke proses lainnya tetapi hanya mengeksekusi jika yang pertama memiliki output? yang berfokus pada pengiriman email.