0

我刚刚开始使用 bash 脚本,我试图让一个简单的管道工作:

#!/bin/sh                                                                                   

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

鉴于端口号有效并且程序按我的意愿工作,是什么让这个脚本搞砸了?

我的程序应该打印一些文本并使用 fgets 接收一些用户输入。当我运行我的 shell 脚本时,我希望它表现得就像我只是在正常运行程序一样。当我运行它时,我只是让它空白而不做任何事情,我必须用 ctrl+C 打破它。

我在终端中输入如下内容:

sh testnc.sh 2342

感谢您的任何建议

4

1 回答 1

2

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

主机1:

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

主机2:

cat files | nc <host1> <port>

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

于 2011-11-07T05:03:39.680 回答