Nie rozumiem, jak ciągle uruchamiać ten skrypt. Służy do sprawdzania, czy rozmiar /var/spool/mail
się powiększa, i wyświetla wynik „Masz pocztę”.
Mogę go uruchomić, po prostu nie wiem, jak go uruchomić bez zatrzymywania się.
#!/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
nieprawidłowo.Odpowiedzi:
Po zamknięciu okna terminala skrypt przestanie działać po upływie określonego czasu. With nohup .. a twój skrypt będzie działał, dopóki nie będzie gotowy. To powinno załatwić sprawę;
źródło
Problem polega na tym, że po wejściu do pętli dwa rozmiary plików nie zmieniają się, więc albo natychmiast ją kończysz, albo zapętlasz w nieskończoność. Twój kod powinien być bardziej podobny (ostrzeżenie: niesprawdzone):
(zastąpione
for
przez bardziej zwykłe,while
ale to nie był problem)źródło