为什么组合两个非缓冲区会出现此错误?

为什么组合两个非缓冲区会出现此错误?

我正在读这个答案这里并运行测试代码

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 的联机帮助页。

相关内容