![30초마다 df 결과를 표시하는 방법은 무엇입니까? [반복하다]](https://linux55.com/image/31402/30%EC%B4%88%EB%A7%88%EB%8B%A4%20df%20%EA%B2%B0%EA%B3%BC%EB%A5%BC%20%ED%91%9C%EC%8B%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B0%98%EB%B3%B5%ED%95%98%EB%8B%A4%5D.png)
내가 보고 싶은 것은 df /
30초마다 방출되지만 이전 숫자 뒤에 나오는 동일한 줄의 백분율입니다.
따라서 최종 출력은86% 86% 86% 87% 87% ......
코드 한 줄이 될 수 있나요? 아니면 여러 줄의 "프로그램"입니까?
답변1
답변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 숫자 뒤의 개행 문자는 콘솔 개행이 출력에 나타나는 것을 방지해야 합니다.