stdbuf是否首选减少管道数据流量?

时间:2017-01-20 20:08:51

标签: bash performance io pipe centos7

如果有一个管道命令,例如:

a | b | c

我希望减少管道中不必要的数据流,我会使用stdbuf

stdbuf -i0 -o0 -e0

在前面:

  • 第一个命令?
  • 最后一个命令?
  • 每个命令?

如:

stdbuf -i0 -o0 -e0 a | b | c
a | b | stdbuf -i0 -o0 -e0 c
stdbuf -i0 -o0 -e0 a | stdbuf -i0 -o0 -e0 b | stdbuf -i0 -o0 -e0 c

我们假设命令c是首先因关注SIGPIPE行为而终止的命令。

stdbuf是否优先于unbuffer?上面使用的选项是否合适?其他方法在性能和代码可维护性方面是否优越?

注意:此问题适用于:

  • Bash 4.2及更高版本
  • Red Hat 7,CentOS 7及相关发行版(即不是Debian等)
  • 不应使用第三方软件。软件包必须可用,例如,通过CentOS-7-x86_64-DVD-1611.iso存储库iso中的OS提供程序包(对于RHEL 7,Fedora 7等也是如此)。

0 个答案:

没有答案