Bagaimana cara mengirim pesan ke netcat dan skrip lainnya?

1

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 expectbisa 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:

masukkan deskripsi gambar di sini

Mars
sumber

Jawaban: