2011-11-07 60 views
0

我刚刚开始使用bash脚本工作,我一直试图得到一个简单的管工作:Netcat的工作不

#!/bin/sh                     

mkfifo apipe 
cat apipe | nc -l $1 | /home/matt/testprogram > apipe 

鉴于该端口号的工作和程序工作,因为我想它到,什么可能使这个剧本搞砸了?

我的程序应该打印一些文本以及使用fgets进行一些用户输入。当我运行我的shell脚本时,我希望它的行为就像我正常运行程序一样。当我运行它时,我只是把它消隐掉而没有做任何事情,而且我必须用ctrl + C来分解它。

我键入到终端类似:

sh testnc.sh 2342 

感谢您的任何意见

+1

如果你解释了你想要达到的目标以及你得到的错误,那将会更容易回答。 – moodywoody

+0

对不起,我试图让它更清晰一点。 – KWJ2104

回答

2

您正在使用NC错误。 nc -l $1正在侦听该端口上的外部连接。所以,你可以像这样运行的东西:

主机1:

nc -l <port> | /home/matt/testprogram 

主持人2:

cat files | nc <host1> <port> 

但是,你正在做的使用是没有意义的。

+0

感谢您的回复。我试图让网络服务器像行为。你知道我应该如何编辑我的代码来做到这一点(因为我认为这是我的代码做的)? – KWJ2104

+0

你是什么意思“网络服务器的行为”? – Jericon

+0

看看'ncat'就像nc版本2(:语法更简单,更一致。 – hashier