Sto cercando di creare un'interfaccia client-server. Pensala come una chat individuale.
Quello che voglio ottenere sono due viste orizzontali. In basso per il mio input (server), in alto per l'output del client e il mio input. Entrambi formattati (ad esempio timestamp aggiunto). Sto facendo una connessione usando netcat. Sono riuscito a dividere lo schermo, formattare e stampare i dati in arrivo. Quello che mi manca è di stampare il mio input nella finestra superiore insieme all'invio al client. Sto usando named pipe. Comincio tutto con un comando nudo temporaneo screen -c screens
. In futuro, tutto inizierà dal terzo script con i parametri). Sto eseguendo distro CrunchBang basato su debian 64-bit.
Può essere expect
potrebbe risolvere il problema? Qualsiasi aiuto sarebbe apprezzato.
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
schermata di configurazione:
startup_message off
split
focus
screen ./server.sh
title "input"
focus top
screen ./conv.sh
title "conv"
focus bottom
Aspetto della finestra: