#!/bin/sh#################аргументы##########################
n=5 # Количество строк
myfile="/var/log/messages" #При режиме file
#tailmode="stdin"
tailmode="file"
####################################################
counter=0
if [ $tailmode = "file" ]
then
exec 0>&- # Закрываем stdin
exec 0<$myfile # Открываем stdin из файла
fi
while read line <&0
do
for (( i=1; i < n; i++))
do
lines[$i]=${lines[$i+1]}
done
lines[n]=$line
let "counter++"
done
nr=$n
if [ $counter -lt $n ]
then
nr=$counter # Если строк меньше n
fi
for (( i=n-nr+1; i <= n ; i++))
do
echo ${lines[$i]}
done
# В этом режиме в бесконечный цикл ожидания следующей строки
if [ $tailmode = "file" ]
then
while [ true ]
do
while read line <&0
do
echo $line
done
done
fi
В качестве черновика (мож с ошибками Сами тестируйте)