GNU/Linux >> Belajar Linux >  >> Linux

Hapus stdin sebelum membaca

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


Linux
  1. Memahami Jika?

  2. Membaca Dan Mencari Halaman Man Panjang?

  3. Bagaimana Cara Menghapus Journalctl?

  1. Dd:Beberapa File Input?

  2. Bagaimana Cara Membaca Seluruh Script Shell Sebelum Mengeksekusinya?

  3. Kompres file saat membaca data dari STDIN

  1. 'Seandainya'?

  2. Pipa string ke Tanggal GNU untuk konversi - bagaimana cara membuatnya dibaca dari stdin?

  3. Perintah Linux/Unix untuk menggabungkan N baris input dengan pembatas?