从dd命令读取输出

时间:2015-10-25 13:15:03

标签: bash dd

我用脚本测试我的网络速度,并计算每次运行时读取速度所需的平均速度。

命令:

dd if=InputFile of=OutputFile bs=4096k

输出:

64+0 records in
64+0 records out
268435456 bytes (268 MB) copied, 1.8519 s, 145MB/s

问题是dd命令总是将输出打印到stdout。我可以管理它或将其写入文件,以便我可以阅读145MB/s

我尝试了以下几行:

dd if=InputFile of=OutputFile bs=4096k >> log.txt - 创建一个空文件并打印到stdout

dd if=InputFile of=OutputFile bs=4096k | grep * - 失败

echo `dd if=InputFile of=OutputFile bs=4096k` # fails

2 个答案:

答案 0 :(得分:2)

您的问题是dd 将输出打印到stdout,而是打印到 stderr

您必须使用2> ...重定向,例如

dd if=/dev/zero of=/dev/null count=1 2> >( grep copied )

答案 1 :(得分:0)

您还可以获取dd过程的PID并设置监视以根据您的喜好发送USR1信号。然后将其重定向到文件!!!!