11.10.13, dimas<dimas...@ya.ru> написал(а): ... > альтернативные реализации зело непросты (типа как с помощью screen/tmux > разбить > окно пополам, но тогда нужно в них запускать отдельные скрипты, которые > непонятно как должны между собой общаться. и прочее в таком духе, тянущее > еще > лишние зависимости). зачем писать такое на баше - отдельный вопрос. скорее > для > творческого саморазвития, интересно уже))
Альтернативная реализация Сервер: mkfifo /tmp/fifo chmod a+w /tmp/fifo while true; do cat /tmp/fifo >> /tmp/discussion; done Клиенты (или в двух отдельных терминалах, или разбить окно в screen) Пользовательский ввод: while read ; do echo $NICKNAME:$REPLY > /tmp/fifo; done Вывод: tail -f /tmp/discussion Или же просто (в одном терминале) tail -f /tmp/discussion & while read ; do echo $NICKNAME:$REPLY > /tmp/fifo; done но тогда будут указанные проблемы с вводом текста. При выходе надо корректно прибить tail, иначе будет по несколько одинаковых сообщений при следующем запуске. Можно добавить распознавание команд, оценивая $REPLY на соответствие определённым словам (например, "/quit"). Но это всё уже в качестве домашнего задания.