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