$ seq 10 | unbuffer -p od -vtc
0000000 1 \n 2 \n 3 \n 4 \n 5 \n 6 \n 7 \n 8 \n
9
去了哪里10
?
$ printf '\r' | unbuffer -p od -An -w1 -vtc
\n
为什么\r
改为\n
?
$ : | unbuffer -p printf '\n' | od -An -w1 -vtc
\r
\n
$ unbuffer -p printf '\n' | od -An -w1 -vtc
\r
\n
搞什么?
$ printf foo | unbuffer -p cat
$
为什么没有输出(并且延迟一秒)?
$ printf '\1\2\3foo bar\n' | unbuffer -p od -An -w1 -vtc
$
为什么没有输出?
$ (printf '\23'; seq 10000) | unbuffer -p cat
为什么它挂起并且没有输出?
$ unbuffer -p sleep 10
为什么我看不到我输入的内容(为什么即使我sleep
没有阅读它也会被丢弃)?
顺便说一下,还有:
$ echo test | unbuffer -p grep foo && echo found foo
found foo
为什么grep
找到foo
但没有打印包含它的行?
$ unbuffer -p ls /x 2> /dev/null
ls: cannot access '/x': No such file or directory
为什么错误没有转到/dev/null
?
另请参阅取消缓冲将所有字符转换为响铃?
$ echo ${(l[10000][foo])} | unbuffer -p cat | wc -c
4095
那是:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux trixie/sid
Release: n/a
Codename: trixie
$ uname -rsm
Linux 6.5.0-3-amd64 x86_64
$ expect -c 'puts "expect [package require Expect] tcl [info patchlevel]"'
expect 5.45.4 tcl 8.6.13
$ /proc/self/exe --version
zsh 5.9 (x86_64-debian-linux-gnu)
在 Ubuntu 22.04 或 FreeBSD 12.4-RELEASE-p5 上也是如此(除了od
命令必须在那里进行调整,我得到 2321(那里的所有 BEL 字符)而不是上面的 4095)。