Проверку каждый час десять минут надо делать с помощью таймеров. Это немного сложнее чем используя bind time. На последнем и остановимся.
# Биндим на каждые 00 минут. То-есть будет срабатывать раз в час.
bind time - "00 * * * *" timeccheck
# Начинаем процедуру в которой указываем канал куда будем писать новые цифры из файла.
proc timecheck {min hour day month year} {
set channel "#chan"
Далее открываем тему
Работа с файлами и читаем там пункт номер 1.
Копипастим оттуда все строки кроме последней.
# Имя файла который будем читать.
set fname "yourfile.txt"
# Открываем доступ к файлу для чтения (мы не ловим ошибки, однако
# можно использовать catch {} в случае если файл отсутствует.
set fp [open $fname "r"]
# Тут мы считываем все данные из файла.
set data [read -nonewline $fp]
# Закрываем файл.
close $fp
Ну вот, все цифры у нас теперь в переменной data. Сохраняем ее во временный файл.
# Имя файла в который будем писать.
set fname "timedfile.txt"
# Открываем доступ к файлу для записи (мы не ловим ошибки, однако
# можно использовать catch {} в случае если файл отсутствует.
set fp [open $fname "w"]
# Тут мы записываем все данные файл.
puts $fp $data
# Закрываем файл.
close $fp
Далее, при следующей проверки мы должны снова считать данные из твоего файла и сравнить из с данными из временного, если результаты совпадут то оставить все как есть, если нет то вывести новые данные в канал и перезаписать их во временный файл. Выглядеть это будет примерно так:
# Проверяем наличие временного файла.
if {[file exists "timedfile.txt"]} {
# Считываем данные из обоих файлов и сравниваем их.
# Имя файла который будем читать.
set fname "yourfile.txt"
# Открываем доступ к файлу для чтения (мы не ловим ошибки, однако
# можно использовать catch {} в случае если файл отсутствует.
set fp [open $fname "r"]
# Тут мы считываем все данные из файла.
set data [read -nonewline $fp]
# Закрываем файл.
close $fp
# Имя файла который будем читать.
set fname "timedfile.txt"
# Открываем доступ к файлу для чтения (мы не ловим ошибки, однако
# можно использовать catch {} в случае если файл отсутствует.
set fp [open $fname "r"]
# Тут мы считываем все данные из файла.
set data2 [read -nonewline $fp]
# Закрываем файл.
close $fp
# Если данные разные до переписываем данные из основного файла во временный.
if {$data != $data2} {
# Имя файла в который будем писать.
set fname "timedfile.txt"
# Открываем доступ к файлу для записи (мы не ловим ошибки, однако
# можно использовать catch {} в случае если файл отсутствует.
set fp [open $fname "w"]
# Тут мы записываем все данные файл.
puts $fp $data
# Закрываем файл.
close $fp
}
}
И итоговый скрипт:
bind time - "00 * * * *" timeccheck
proc timecheck {min hour day month year} {
set channel "#chan"
if {[file exists "timedfile.txt"]} {
set fname "yourfile.txt"
set fp [open $fname "r"]
set data [read -nonewline $fp]
close $fp
set fname "timedfile.txt"
set fp [open $fname "r"]
set data2 [read -nonewline $fp]
close $fp
if {$data != $data2} {
foreach line [split $data "\n"] {
putserv "PRIVMSG $channel :$line"
}
set fname "timedfile.txt"
set fp [open $fname "w"]
puts $fp $data
close $fp
}
}
}
Ничего не тестировал. Может не работать.