如何每 30 秒显示一次 df 的结果?

如何每 30 秒显示一次 df 的结果?

我想看到的是每 30 秒发出一次df /但在前一个数字之后的同一行上的百分比。

所以最终的输出是86% 86% 86% 87% 87% ......

可以是一行代码吗?或者多行“程序”?

答案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 数字后面的换行符应防止输出中出现控制台换行符。

相关内容