Я намагаюся зробити якийсь інтерфейс клієнт-сервер. Подумайте про це як чат один на один.
Я хочу досягти двох горизонтальних поглядів. Знизу для мого (серверного) введення, зверху для клієнтського виводу та мого вводу. Обидва форматовані (наприклад, додана часова марка). Я з'єднуюся за допомогою netcat. Мені вдалося розділити екран, форматувати та друкувати вхідні дані. Що мені бракує - це надрукувати свій внесок у верхньому вікні разом з надсиланням його клієнту. Я використовую названу трубу. Я починаю все з тимчасової голої команди screen -c screens
. Надалі все почнеться від третього сценарію з параметрами). Я використовую 64-розрядний дистрибутив на основі debian CrunchBang.
Можливо, expect
міг би вирішити проблему? Будь-яка допомога буде вдячна.
server.sh:
#!/bin/bash
pipe=/tmp/pipe
trap "rm -f $pipe" EXIT
if [[ ! -p $pipe ]]; then
mkfifo $pipe
#chmod +x $pipe
fi
nc localhost -lp 53656 >$pipe &
while true
do
read message
echo "$message" >$pipe
clear
done
conv.sh:
#!/bin/bash
# conversation window
clear
pipe=/tmp/pipe
while true
do
if read line <$pipe; then
if [[ "$line" == "quit" ]]; then
break
fi
NOW=$(date "+%H:%M")
echo "($NOW) Client: $line"
fi
done
конфігурація екранів:
startup_message off
split
focus
screen ./server.sh
title "input"
focus top
screen ./conv.sh
title "conv"
focus bottom
Вигляд вікна: