Сучасні оболонки є мовами програмування, тому ви можете використовувати арифметику для перевірки стану дат. Однак top
у пакетному режимі працює до досягнення межі ітерації, і як тільки ви запустите top
, ви не можете перевірити стан дат. Тому вам потрібно запустити top
ліміт ітерації, встановлений на 1, і перезапустити його в циклі:
#!/bin/bash
output_file="file.txt"
iteration_delay=5s
time1=1491004315
time2=3500000000
date1=`date +%s` #we initialize date1 with current unix time
while ((1)); do
if (($time1 <= $date1 && $date1 <= $time2)); then
top -o %MEM -b -n 1 >> $output_file
fi
sleep $iteration_delay
# something should update date1, time1 or time2 here...?
done
РЕДАКТУВАННЯ: Щоб використовувати цей скрипт, скопіюйте та вставте його, наприклад, на файл mytop.sh, встановіть на ньому виконуваний файл :
chmod +x mytop.sh
і тоді ви можете запустити його, як зазвичай:
./mytop.sh
Щоб скасувати, натисніть ctrl+ c.
Немає візуального показника, що він працює, і деякі люди почувають себе краще, коли є якийсь вихід. Якщо ви хочете, ви можете додати, наприклад:
echo .
рядок у сценарії за sleep
рядком, щоб надрукувати нову крапку на кожній ітерації.
time1
,time2
іdate
прийшли?