我在背景運行以下腳本:
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
請求的輸入。
不知道該腳本的作用,我只能推測它可能在解析方面存在一些問題。