[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Netcat bidirecional.
From: |
Fernando Lemes da Silva |
Subject: |
Re: [shell-script] Netcat bidirecional. |
Date: |
Thu, 11 Jan 2007 19:31:32 -0200 |
User-agent: |
KMail/1.9.1 |
Opa Julio!
Eu tinha tentado usar somente o "<(comando)" mas o nc recebe o pipe do
process substitution como argumento e não espera isto. Já usando o "<
<(comando)" ele entente que estou jogando o pipe na STDIN.. e tudo funciona
ok!
Depois que isto comecou a funcionar eu compliquei um pouco mais as coisas e
ficou assim:
---------------------------------------------------------------------------------------------
#!/bin/bash
PIPE=server.fifo
[ ! -e "${PIPE}" ] && mkfifo "${PIPE}"
[ -e "${PIPE}" -a ! -p ${PIPE} ] && echo "Error. Cannot create named pipe." &&
exit 1
while [ true ]; do
nc -l 12345 < \
<(
while [ true ]; do
ANSWER=`cat "${PIPE}"`;
if [ "${ANSWER}" != "BYE" ]; then
echo ${ANSWER}
else
echo ${ANSWER}
sleep 1
exit
fi
done
) |
while read line; do
echo "Line is: ${line}"
if [ "${line}" = "quit" ]; then echo "BYE" > ${PIPE}; exit
else echo "OK. Go on." > ${PIPE}; fi
done
echo "End of connection."
done
[ -p "${PIPE}" ] && unlink "${PIPE}"
---------------------------------------------------------------------------------------------
E deste modo eu consigo fazer com que o script processe o que foi digitado
e de uma resposta, prevendo a desconexão solicitada ou involuntária. A unica
coisa "ruim" é que o script só atende um cliente por vez... :-)
Abraços,
--
0010111100101010010100110100100101000111
Fernando LEMES da Silva
www.koho.com.br (0x53E56DAA)
0101001101001001010001110010101000101111
Em Quinta 11 Janeiro 2007 16:58, Julio C. Neves escreveu:
> Fala Fernando,
> qdo vc disse que não conseguiu por causa do pipe, eu is sugerir justamente
> o que vc fez, o uso de process substitution. Vc tb pode fazer uma
> substituição de processos do conjunto inteiro redirecionando a entrada do
> done.
> Mas tem 2 coisas estranhas:
> 1. Me parece que o correto é:
> nc -l 12345 <(cat "named_pipe")
> e não:
> nc -l 12345 < <(cat "named_pipe")
> já que o nc não aceita redirecionamento de entrada.
> 2. Se vc faz cat named_pipe e no loop vc faz echo ok > named_pipe, o
> arquivo named_pipe seria zerado, ficando somente a palavra ok lá.
> Abração,
> Julio
> :wq
- Netcat bidirecional., Fernando Lemes da Silva, 2007/01/10
- Re: [shell-script] Netcat bidirecional. - Exemplo, Leandro Lustosa, 2007/01/10
- Re: [shell-script] Netcat bidirecional., Flavio Junior, 2007/01/10
- Re: [shell-script] Netcat bidirecional., Fernando Lemes da Silva, 2007/01/11
- Re: Netcat bidirecional., Juliano, 2007/01/11
- Re: [shell-script] Netcat bidirecional., Julio C. Neves, 2007/01/11
- Re: [shell-script] Netcat bidirecional., Fernando Lemes da Silva, 2007/01/11
- Re: [shell-script] Netcat bidirecional., Julio C. Neves, 2007/01/11
- Re: [shell-script] Netcat bidirecional.,
Fernando Lemes da Silva <=
- Grep retorna mais de um resultado, Deivid Vilela, 2007/01/12
- Re: [shell-script] Grep retorna mais de um resultado, Tiago Barcellos Peczenyj, 2007/01/12
- Re: [shell-script] Grep retorna mais de um resultado, Flavio Junior, 2007/01/12
- Re: [shell-script] Grep retorna mais de um resultado, Deivid Vilela, 2007/01/12
- Re: [shell-script] Grep retorna mais de um resultado, Tiago Barcellos Peczenyj, 2007/01/12
- Re: [shell-script] Grep retorna mais de um resultado, Flavio Junior, 2007/01/12
- Re: [shell-script] Grep retorna mais de um resultado, Tiago Barcellos Peczenyj, 2007/01/12
- Re: [shell-script] Grep retorna mais de um resultado, Sergio Nery Simoes, 2007/01/12
- Re: [shell-script] Netcat bidirecional., Flavio Junior, 2007/01/11