GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Löschen Sie stdin vor dem Lesen

In Bash 4 können Sie -t festlegen (Zeitüberschreitung) auf 0 . In diesem Fall read kehrt sofort mit einem Exit-Status zurück, der angibt, ob Daten warten oder nicht:

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

Ich glaube nicht, dass es eine Möglichkeit gibt, stdin zu löschen, aber (mit bash) können Sie lesen und verwerfen, was da ist, bevor Sie nach der Eingabe fragen

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

Dies liest stdin und hat ein Timeout von 1 Sekunde, es schlägt jedoch fehl, wenn mehr als 10000 Zeichen in stdin vorhanden sind. Ich weiß nicht, wie groß Sie den nchars-Parameter machen können.


read -d '' -t 0.1 -n 10000

Dies liest mehrere Eingabezeilen, wenn der Benutzer versehentlich mehrmals die Eingabetaste gedrückt hat


Linux
  1. Wenns verstehen?

  2. Dateien komprimieren, während Daten von STDIN gelesen werden

  3. Pipe-String zum GNU-Datum für die Konvertierung - wie kann man es von stdin lesen lassen?

  4. Wie bringe ich sed dazu, von der Standardeingabe zu lesen?

  5. Linux/Unix-Befehl zum Verbinden von N Eingabezeilen mit Trennzeichen?

Bash las Befehl

Wie lösche ich Journalctl?

Lesen von Zeilen aus einer Datei mit Bash:Für Vs. Während?

5 praktische Beispiele für den Read-Befehl unter Linux

Ausblenden von Benutzereingaben auf dem Terminal im Linux-Skript

Wie kann ich Eingaben von der Tastatur des Hosts lesen, wenn ich über SSH verbunden bin?