GNU/Linux >> Tutoriales Linux >  >> Linux

Borrar stdin antes de leer

En Bash 4, puede configurar -t (tiempo de espera) a 0 . En este caso, read regresa inmediatamente con un estado de salida que indica si hay datos en espera o no:

# do some time consuming task here
while read -r -t 0; do read -r; done
read -p "Give me some input: " input

No creo que haya una forma de borrar la entrada estándar, pero (con bash) puede leer y descartar lo que hay antes de solicitar la entrada

#do some time consuming task here
read -t 1 -n 10000 discard 
read -p "Give me some input: " input

Esto lee stdin y tiene un tiempo de espera de 1 segundo, aunque falla si hay más de 10000 caracteres en stdin. No sé qué tan grande puedes hacer el parámetro nchars.


read -d '' -t 0.1 -n 10000

Esto lee múltiples líneas de entradas, si el usuario presionó inadvertidamente ingresar varias veces


Linux
  1. ¿Entendiendo si?

  2. ¿Leer y buscar páginas man largas?

  3. Lectura de líneas de un archivo con Bash:para vs. ¿Mientras?

  4. Bash Script - Cómo leer la entrada del usuario

  5. Lectura de flujo de entrada USB en Linux

Comando de lectura Bash

5 ejemplos prácticos del comando de lectura en Linux

Comprima archivos mientras lee datos de STDIN

Canalice la cadena a la fecha GNU para la conversión:¿cómo hacer que se lea desde la entrada estándar?

¿Cómo hago para que sed lea desde la entrada estándar?

¿Comando Linux/Unix para unir N líneas de entrada con delimitadores?