我想要做的是在数据到达时进行处理,与换行符无关。
- 当
read -n $n
在 stdin 上使用管道时,Bash 会对read (0, buf, 1)
每个字节进行一次系统调用,如果要处理的数据量不小(例如,1 MB 或更多),则速度会太慢。 - 当使用
read -N $n
Bash 时会重复进行系统调用read (0, buf, <RestOf$n>)
直到$n
达到,所以我无法开始处理迄今为止收到的内容。 - 使用时,即使读取了一些数据,
read -N $n -t 0.1
结果也是空的。这意味着:数据丢失了。这是 Bash 的一个错误还是一个功能?$REPLY
那么,我怎样才能使用read
任意参数进行一次count
系统调用bash
,然后处理迄今为止收到的输入?