Ich möchte das Skript verlassen, wenn eine Taste gedrückt wird.
#!/bin/sh
while true; do
df -h | head
sleep 10
clear
done
Irgendein Vorschlag?
bash
shell-script
sh
BOUABANE Raed
quelle
quelle
Ersetzen
sleep 10;
durchread -t 10 -n 1 exitwhile; if [ -n "$exitwhile" ]; then break; fi
read -t 10 -n 1 exitwhile
Wartet 10 Sekunden auf die Eingabe ohne Bestätigung mit enter und setzt die Eingabe währenddessen in die Variable exit. Wenn diese Variable nicht leer ist, wird die while-Schleife unterbrochen.… Muss jedoch geändert werden, da es nur bei Zeichentasten zu Unterbrechungen kommt
quelle
Dies wird auf fast jeder Taste beendet:
Anmerkungen:
bash
, nichtsh
wegenread -n
./dev/null
soll verhindern, dass andere Befehle alsread
die Standardeingabe erschöpfen (clear
unddf
kann dies möglicherweise nicht tun, im Allgemeinen jedoch). Auf diese Weise werden alle Eingaben anread
schließlich weitergeleitet.read
ist, überflüssige Zeichen aus dem Standard zu entfernen. Einige Tasten erzeugen mehr als ein Zeichen (Forschung "Escape-Sequenzen"); Es ist auch möglich, mehrere Tasten zu drücken, währenddf
(oder ein anderer Befehl, den Sie verwenden möchten) ausgeführt wird. Ohne das Finale würdenread
diese zusätzlichen Zeichen Ihre Befehlszeile verunreinigen.Alternativer Ansatz mit
watch
:quelle