Я не понимаю, как запустить этот скрипт постоянно. Он используется для проверки увеличения размера /var/spool/mail
и отображает вывод «У вас есть почта».
Я могу заставить его работать, я просто не знаю, как заставить его работать без остановки.
#!/bin/bash
filename=/var/spool/mail/will
filesize="$(du -b "$filename")"
filesizeold="${filesize//[!0-9]/}"
echo $filesizeold
sleep 10;
filename=/var/spool/mail/will
filesize="$(du -b "$filename")"
filesizenew="${filesize//[!0-9]/}"
echo $filesizenew
for (( ;; ))
do
if [ $filesizeold -ne $filesizenew ];
then
break
fi
done
echo "$USER, You have mail"
for
неправильно.Ответы:
Когда вы закрываете окно терминала, ваш скрипт останавливается после истечения времени ожидания. С nohup .. & ваш скрипт будет работать, пока он не будет готов. Это должно сработать;
источник
Проблема в том, что как только вы входите в цикл, два размера файлов не меняются, поэтому вы либо выходите из цикла немедленно, либо выполняете цикл бесконечно. Ваш код должен быть больше похож (предупреждение: не проверено):
(заменил
for
на более обычный,while
но это не проблема)источник