Wie wird das Ergebnis von df alle 30 s angezeigt?

Wie wird das Ergebnis von df alle 30 s angezeigt?

Ich möchte lediglich den %-Wert sehen, den ich df /alle 30 Sekunden ausgebe, aber in der gleichen Zeile direkt nach der vorherigen Zahl.

Das Endergebnis wäre also86% 86% 86% 87% 87% ......

Könnte es einzeiliger Code sein? Oder ein mehrzeiliges „Programm“?

Antwort1

ich würde bevorzugen

watch -n 30 df

Mann uhr:

beobachten - führt ein Programm regelmäßig aus und zeigt die Ausgabe im Vollbildmodus an

Antwort2

while printf '%s ' "$(df -P / | awk 'NR==2 { print $(NF-1) }')"; do
    sleep 30
done
echo

Antwort3

Sie können verwenden watch:

watch -n 30 -t df /

Das überschreibt aber die vorhandene Ausgabe

Antwort4

Für Bash:

i=1
outputs_per_line=10
frequency=30
while true; do
  echo -n "$(df / | awk 'NR==2 {print $5}') "
  if [ $((i%outputs_per_line)) -eq 0 ]; then
    echo
  fi
  ((i++))
  sleep "$frequency"
done

Der Zeilenumbruch nach $outputs_per_line-Nummern soll einen Konsolenzeilenumbruch innerhalb der Ausgabe verhindern.

verwandte Informationen