30秒ごとにdfの結果を表示するにはどうすればいいですか?

30秒ごとにdfの結果を表示するにはどうすればいいですか?

私が見たいのは、30 秒ごとに発行した後の % だけですdf /が、前の数字の直後の同じ行に表示されます。

最終的な出力は次のようになります86% 86% 86% 87% 87% ......

1 行のコードでしょうか? それとも複数行の「プログラム」でしょうか?

答え1

私は

watch -n 30 df

男性用腕時計:

watch - 定期的にプログラムを実行し、出力を全画面で表示する

答え2

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

答え3

以下を使用できますwatch:

watch -n 30 -t df /

しかし、既存の出力は上書きされます

答え4

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

$outputs_per_line 番号の後の改行により、出力内のコンソールの改行が防止されます。

関連情報