对于MacOS(Mavericks),我正在制作一个shell脚本来收集随时间推移的转移统计信息dd
.
手册页说:
如果dd收到SIGINFO(参见stty(1)的状态参数)信号,则当前输入和输出块计数将以与标准完成消息相同的格式写入标准错误输出.
因此,就像在Linux中一样,我试过:
kill -INFO
该命令成功完成,状态为0,但是dd
进程连接到的终端,标准输出/标准错误中没有统计信息.
那么dd
在输出中打印统计数据的正确方法是什么?
它似乎对我有用:
$ dd if=/dev/zero of=/dev/null bs=1k & [1] 33990 $ kill -INFO 33990 4787784+0 records in 4787784+0 records out 4902690816 bytes transferred in 4.260769 secs (1150658706 bytes/sec) $ kill -INFO 33990 8357846+0 records in 8357846+0 records out 8558434304 bytes transferred in 7.428820 secs (1152058392 bytes/sec) $ kill 33990 $ ps PID TTY TIME CMD 1342 ttys000 0:00.02 -bash 2290 ttys001 0:00.17 -bash [1]+ Terminated: 15 dd if=/dev/zero of=/dev/null bs=1k $
您也可以在终端选项卡中按Ctrl + T以获得相同的行为:
MacBook-Pro:~ $ dd if=~/source_image.dmg of=/dev/disk1 load: 0.87 cmd: dd 7229 uninterruptible 0.21u 3.91s 265809+0 records in 265808+0 records out 136093696 bytes transferred in 131.170628 secs (1037532 bytes/sec) load: 0.99 cmd: dd 7229 uninterruptible 0.32u 5.89s 415769+0 records in 415768+0 records out 212873216 bytes transferred in 203.357068 secs (1046795 bytes/sec)