LINUX.ORG.RU

Помогите разобрать bash скринт

 , ,


1

3
echo "Your name:"; read USER
echo "[$(date)] ${USER}" >> test.log
echo "[$(date)] Work ${USER}!"
tail -n 0 -f test.log --pid=$$ | grep --line-buffered -v "] ${USER}>" &
while read MSG; do echo "[$(date)] ${USER}> ${MSG}" >> test.log; done

По строчкам,

1: Выводим в консоли «Your name:» и спрашиваем имя

2: Записываем в файл test.log текущею дату и введенное имя

3: Выводим в консоли Дату, слово"Work" и введенное имя.

4: Вот тут я не понимаю. Открываем test.log смотрим в нем последнею строчку а что еще делаем?

Это самодельный чат для юникс.

В цикле while в чат пишет наш пользователь, а tail -f здесь используется для слежения за тем, что туда пишут другие пользователи из своих экземпляров скрипта. Греп убирает из вывода свои собственные сообщения, чтобы они не дублировались.

legolegs ★★★★★ ()
Ответ на: комментарий от anonymous

Хорошо. В этом коде я иногда получаю вот такую ошибку, с чем она может быть связана и как от нее избавится:

command:'/bin/bash' origin:'file://' pid:'3411' | Unexpected error while reading STDOUT from process: read |0: file already closed

Dima85 ()
Ответ на: комментарий от Dima85

Ошибка появляется потому, что ты ленивое животное, которое само не хочет прочитать доки, а просит это от других. Пшел вон с лора.

anonymous ()
Ответ на: комментарий от Dima85

за 4 дня не смог в гугл переводчике перевести эту фразу? ' Unexpected error while reading STDOUT from process: read |0: file already closed' ????

ford1813 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.