bash – 计算从一个进程传递到另一个进程的字节数

我正在运行一个shell脚本,将数据从一个进程传递到另一个进程

process_a | process_b

有谁知道找出两个程序之间传递了多少字节的方法?我现在能想到的唯一解决方案是编写一个从stdin读取的小型c程序,写入stdout并计算所有传输的数据,将计数存储在环境变量中,如:

process_a | count_bytes | process_b

有没有人有一个更整洁的解决方案?

通过dd管道. dd的默认输入是stdin,默认输出是stdout;当它完成stdin / stdout I / O时,它会向stderr报告它传输了多少数据.

如果要捕获dd的输出并且其他程序已经与stderr对话,则使用另一个文件描述符.例如,

$exec 4>~/fred
$input-command | dd 2>&4 | output-command
$exec 4>&-
翻译自:https://serverfault.com/questions/95639/count-number-of-bytes-piped-from-one-process-to-another

转载注明原文:bash – 计算从一个进程传递到另一个进程的字节数