我试图建立一些客户端 - 服务器接口。将其视为一对一聊天。
我想要实现的是两个水平视图。我的(服务器)输入的底部,顶部的客户端输出和我的输入,两者都格式化(例如添加时间戳)。我正在使用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