Saya mencoba membuat beberapa antarmuka klien-server. Anggap saja sebagai obrolan satu lawan satu.
Apa yang ingin saya capai adalah dua pandangan horizontal. Bawah untuk input (server) saya, atas untuk output klien dan input saya. Keduanya diformat (mis. Menambahkan stempel waktu). Saya membuat koneksi menggunakan netcat. Saya berhasil membagi layar, memformat, dan mencetak data yang masuk. Yang tidak saya miliki adalah mencetak input saya di jendela paling atas bersamaan dengan mengirimkannya ke klien. Saya menggunakan pipa bernama. Saya memulai semuanya dengan perintah sementara sementara screen -c screens
. Di masa depan, semuanya akan mulai dari skrip ketiga dengan parameter). Saya menjalankan distro 64-bit berbasis debian CrunchBang.
Mungkin expect
bisa menyelesaikan masalah? Bantuan apa pun akan dihargai.
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
layar konfigurasi:
startup_message off
split
focus
screen ./server.sh
title "input"
focus top
screen ./conv.sh
title "conv"
focus bottom
Tampilan jendela: