netcat 파이프라인이 너무 일찍 실행되고 있나요?

netcat 파이프라인이 너무 일찍 실행되고 있나요?

バックグラウンドで次のスクリプトを実行しています。

while true; do
    { file=$(/somescript); echo -ne "HTTP/1.0 200 OK\r\n\r\n"; cat $file; } | nc -l -p 20000
done

/somescriptポート20000に要求をする直前に1回実行してから待ってから正しく応答することを除いて、これはうまく機能します。

私は何が間違っていましたか?/somescript20000 件の要求がある場合にのみ実行する必要があります。

ベストアンサー1

注:この記事が書かれてから質問が編集されました(パイプラインが反転)。時間があれば更新します。

パイプラインの各部分は他の部分と同時に開始されます。パイプを同期する唯一のものはI / Oです。ここで、あるプロセスは、パイプの他のプロセスが出力を読み取るか入力を提供するのを待ちます。

スクリプトはファイル名を出力する前に要求された入力をsomescript待って監視する必要があります。nc

このスクリプトの機能がわからないので、解析にいくつかの問題がある可能性があると推測できます。

おすすめ記事