如何在 Bash 中進行一次讀取系統呼叫?

如何在 Bash 中進行一次讀取系統呼叫?

我想要做的是在資料到達時對其進行處理,而與換行無關。

  • read -n $n當與 stdin 上的管道一起使用時,Bashread (0, buf, 1)每個位元組進行一次系統調用,如果要處理的資料量不小(例如 1 MB 或更多),則速度太慢。
  • 當使用read -N $nBash 時,會重複進行系統調用,read (0, buf, <RestOf$n>)直到$n達到,所以我無法開始處理到目前為止收到的內容。
  • 使用時,即使已讀取一些數據,read -N $n -t 0.1我也會得到一個空值。$REPLY這意味著:資料遺失。這是 Bash 的錯誤還是功能?

那麼我怎麼能使用read任意參數進行count一個系統調用bash,然後處理到目前為止收到的輸入呢?

相關內容