while read a ; do sleep 5 ; echo "$a" ; sleep 5 ; date ; done >"$2" <"$1" & pa=$! ; while sleep 7 ; do cat "$2" ; done & pb=$! ; while read x ; [ m"$x" != mquit ] ; do : ; done ; kill $pa ; kill $pb ; rm "$2"
#!/bin/bash
# Информация об использовании
usage()
{
echo "Usage: $( basename "$0" ) <infile> <outfile>"
exit 1
}
# Должно быть 2 параметра
if [[ $# -ne 2 ]] ; then
usage
fi
# Имена файлов
infile="$1"
outfile="$2"
# Записывает каждые 5сек 1й файл во 2й
writeproc()
{
while true ; do
read -r str ; rc=$?
echo "$str"
date
[[ $rc -ne 0 ]] && break
sleep 5
done <$infile >$outfile
}
# Выводит каждые 7сек 2й файл
checkproc()
{
while true ; do
cat "$outfile"
sleep 7
done
}
# Обработка выхода
exitproc()
{
# Удалить файл
rm "$outfile" >/dev/null
# Завершить группу процессов
kill -9 -$$ >/dev/null
}
# Ловим сигналы
trap exitproc INT TERM QUIT EXIT HUP ABRT
# Запуск фоновых процессов
writeproc &
checkproc &
# Читаем ввод пользователя
while read ; do
# Если quit то завершить цикл
[[ "$REPLY". == "quit". ]] && break
done
exitproc
#!/bin/bash
# Информация об использовании
usage()
{
echo "Usage: $( basename "$0" ) <infile> <outfile>"
exit 1
}
# Должно быть 2 параметра
if [[ $# -ne 2 ]] ; then
usage
fi
# Имена файлов
infile="$1"
outfile="$2"
# Записывает каждые 5сек 1й файл во 2й
writeproc()
{
while true ; do
read -r str ; rc=$?
echo "$str"
date
[[ $rc -ne 0 ]] && break
sleep 5
done <$infile >$outfile
}
# Выводит каждые 7сек 2й файл
checkproc()
{
while true ; do
cat "$outfile"
sleep 7
done
}
# Обработка выхода
exitproc()
{
# Удалить файл
rm "$outfile" >/dev/null
# Завершить группу процессов
kill -9 -$$ >/dev/null
}
# Ловим сигналы
trap exitproc INT TERM QUIT EXIT HUP ABRT
# Запуск фоновых процессов
writeproc &
checkproc &
# Читаем ввод пользователя
while read ; do
# Если quit то завершить цикл
[[ "$REPLY". == "quit". ]] && break
done
exitproc
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.