Код: Выделить всё
#!/bin/sh -e
#
# helper for update-motd
# poor mans force
if [ "$1" = "--force" ]; then
NEED_UPDATE_CHECK=yes
fi
# check time when we did the last update check
stamp="/var/lib/update-notifier/updates-available"
# get list dir
StateDir="/var/lib/apt/"
ListDir="lists/"
eval "$(apt-config shell StateDir Dir::State)"
eval "$(apt-config shell ListDir Dir::State::Lists)"
# get sources.list file
EtcDir="etc/apt/"
SourceList="sources.list"
eval "$(apt-config shell EtcDir Dir::Etc)"
eval "$(apt-config shell SourceList Dir::Etc::sourcelist)"
# check if we have a list file or sources.list that needs checking
if [ -e "$stamp" ]; then
if [ "$(find "/$StateDir/$ListDir" "/$EtcDir/$SourceList" -type f -newer "$stamp" -print -quit)" ]; then
NEED_UPDATE_CHECK=yes
fi
else
if [ "$(find "/$StateDir/$ListDir" "/$EtcDir/$SourceList" -type f -print -quit)" ]; then
NEED_UPDATE_CHECK=yes
fi
fi
# output something for update-motd
if [ -n "$NEED_UPDATE_CHECK" ]; then
{
echo ""
/usr/lib/update-notifier/apt-check --human-readable
echo ""
} > $stamp
fi
# output what we have (either cached or newly generated)
cat "$stamp"Сразу у меня возник вопрос:
stamp - переменная до этого файла.
Далее запускаем проверку, есть ли этот файл if [ -e "$stamp" ]; then
если да то запускаем find.
В find указано, что мы ищем файл -f , после указанной даты -newer , переменной stamp.
Если такие есть, то делаем переменную NEED_UPDATE_CHECK=yes
иначе мы ищем файлы find и ставим переменную NEED_UPDATE_CHECK=yes .
Вот тут мой мозг сломался, это вообще еще зачем ?
Смысл тогда было проверять первый раз по времени ?