0

私はbashスクリプトを使い始めたばかりで、単純なパイプを機能させようとしました:

#!/bin/sh                                                                                   

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

ポート番号が機能し、プログラムが希望どおりに機能することを考えると、このスクリプトが台無しになる原因は何でしょうか?

私のプログラムは、いくつかのテキストを出力するだけでなく、fgets を使用していくつかのユーザー入力を受け取ることになっています。シェル スクリプトを実行するときに、プログラムを通常どおり実行しているかのように動作させたいと考えています。私がそれを実行すると、何もせずに空白になり、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 に答える