> man tail
Przyda się jeszcze "man stat" i w sumie fragmenty "man bash"
![Smiley :)](http://forum.linux.pl/Smileys/default/smiley.gif)
Bash średnio nadaje się do takich rzeczy. Jego zadaniem jest uruchomić zadanie polecenia i się zakończyć. Nie pozwala np. otworzyć pliku, przejść na koniec i czekać na nowe dane. Dlatego lepiej by było napisać to w C/C++.
Ale w Bashu też się da.
Musisz sprawdzać czy rozmiar pliku się nie zwiększył, wczytywać nowe znaki (man tail), a je dzielić na poszczególne linie i obrabiać.
Wyjątkowo umieszczę gotowca. Jeśli jesteś ambitny, to spróbuj najpierw sam
![Smiley :)](http://forum.linux.pl/Smileys/default/smiley.gif)
#!/bin/bash
FILE="log.txt"
filesize1=$( stat -c "%s" "$FILE" )
filesize2=$filesize1
while true; do
while [ $filesize2 -eq $filesize1 ]; do
sleep 0.01
filesize2=$( stat -c "%s" "$FILE" )
done
((filesize1++)) # skip file's last byte
while read line; do
# ...
echo "Linia: ${line}"
# ...
done < <( tail -c +${filesize1} "$FILE" )
filesize1=$filesize2
done