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 發出任何請求之前立即執行一次,然後它等待並正確回應。

我究竟做錯了什麼?它應該/somescript只在有請求 20000 時運行

答案1

注意:寫完本文後,問題已被編輯(管道顛倒)。如果我有時間的話我會更新。

管道的每個部分都與其他部分同時啟動。唯一同步管道的是 I/O,即一個進程等待管道中的另一個進程讀取其輸出或提供輸入。

在輸出檔案名稱之前,您的somescript腳本必須等待並觀察nc請求的輸入。

不知道該腳本的作用,我只能推測它可能在解析方面存在一些問題。

相關內容