30秒ごとにdf結果を表示する方法は? [繰り返し]

30秒ごとにdf結果を表示する方法は? [繰り返し]

私が見たいのはdf /30秒ごとにリリースされますが、前の数字の後に続く同じ行の割合です。

したがって、最終出力は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

バッシュの場合:

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 数字の後の改行文字は、コンソール改行が出力に表示されるのを防ぐ必要があります。

関連情報