Tôi đang cố gắng tạo một số giao diện máy khách-máy chủ. Hãy nghĩ về nó như một cuộc trò chuyện một đối một.
Những gì tôi muốn đạt được là hai quan điểm ngang. Dưới cùng cho đầu vào (máy chủ) của tôi, đầu cho đầu ra của khách hàng và đầu vào của tôi. Cả hai định dạng (ví dụ: thêm dấu thời gian). Tôi đang thực hiện kết nối bằng netcat. Tôi quản lý để phân chia màn hình, định dạng và in dữ liệu đến. Những gì tôi thiếu là in đầu vào của tôi trong cửa sổ trên cùng cùng với việc gửi nó cho khách hàng. Tôi đang sử dụng đường ống có tên. Tôi bắt đầu mọi thứ với lệnh trần tạm thời screen -c screens
. Trong tương lai, mọi thứ sẽ bắt đầu từ tập lệnh thứ ba với các tham số). Tôi đang chạy bản phân phối 64 bit dựa trên debian CrunchBang.
Có lẽ expect
có thể giải quyết vấn đề? Bất kỳ trợ giúp sẽ được đánh giá cao.
máy chủ
#!/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
kết luận
#!/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
màn hình cấu hình:
startup_message off
split
focus
screen ./server.sh
title "input"
focus top
screen ./conv.sh
title "conv"
focus bottom
Nhìn cửa sổ: