我正在读这个答案这里并运行测试代码
unbuffer xxd -ps /usr/bin/telnet | unbuffer -p less
但得到Missing filename ("less --help" for help)
.
为什么组合两个非缓冲区会出现此错误?
答案1
通常,unbuffer
不读取stdin
.要unbuffer
在管道中使用,请使用该-p
标志。例子:
process1 | unbuffer -p process2 | process3
这就是这样做的方法。但是你unbuffer
在最后一个过程中使用了它,这没有意义并且不起作用(显然)。所以你的命令应该是:
unbuffer xxd -ps /usr/bin/telnet | less
解释: unbuffer
禁用输出缓冲当程序输出为重定向来自非交互式程序。但 less
是不重定向。
所有本文的来源:unbuffer 的联机帮助页。