2011-11-07 22 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