Di Bash 4, Anda dapat mengatur -t
(batas waktu) ke 0
. Dalam hal ini, read
segera kembali dengan status keluar yang menunjukkan apakah ada data yang menunggu atau tidak:
# do some time consuming task here
while read -r -t 0; do read -r; done
read -p "Give me some input: " input
Saya rasa tidak ada cara untuk menghapus stdin tetapi (dengan bash) Anda dapat membaca dan membuang apa yang ada sebelum Anda meminta masukan
#do some time consuming task here
read -t 1 -n 10000 discard
read -p "Give me some input: " input
Ini membaca stdin dan memiliki batas waktu 1 detik, gagal meskipun jika ada lebih dari 10.000 karakter di stdin. Saya tidak tahu seberapa besar Anda dapat membuat parameter nchars.
read -d '' -t 0.1 -n 10000
Ini membaca beberapa baris input, jika pengguna secara tidak sengaja menekan enter beberapa kali
Mainkan file MP3 atau WAV melalui baris perintah Linux
Bagaimana menemukan direktori terbesar atau file terbesar?