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