Все, что я хочу видеть, — это % после того, как я выдаю df /
каждые 30 секунд, но на той же строке, сразу после предыдущего числа.
Итак, конечный результат будет таким: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
Для Баша:
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 должен предотвратить разрыв строки консоли в выходных данных.