不断读取流的脚本

Cha*_* Xu 7 bash

有时我cat/dev/input/event0.

我想编写一个脚本,每次有更多输出时都会做一些事情。

更多输出的定义可能是每次读取一个字节。

那怎么办呢?有什么命令可以做到吗?

gee*_*aur 5

在 shell 脚本中,您将被限制为完整的行。您需要使用 C/Perl/Python/whatever 进行更细粒度的阅读。

while read line; do
  # do something based on content of $line; remember to quote it
done </dev/input/event0
Run Code Online (Sandbox Code Playgroud)

  • 许多 shell 支持读取少于一行,这只是不标准。*ksh* 可以使用 `read -N5` 读取(例如)五个字节,*bash* 可以使用 `read -rN5` 读取五个(可能是多字节)字符,*zsh* 可以使用 `read - 读取 5 个(可能是多字节)字符 - u0 -k5`。*bash* 和 *zsh* 都可以使用 C 语言环境(或者可能是任何 8 位字符 ctype)读取字节而不是字符。 (6认同)
  • @Chris 考虑写一个答案! (2认同)