有一项功能可以使用coreutils 8.24
监控dd的进度(另见: https://askubuntu.com/questions/215505/how-do-you-monitor-the-progress-of-dd/539305)
这意味着,我可以调用shell命令,例如
dd if=/dev/urandom of=/dev/null status=progress
在执行上述指定命令时,如何确保在主机系统上安装了正确的coreutils版本?
由于此行是python应用程序的一部分,可能在不同的发行版上运行,因此使用包管理器进行验证并不是最好的方法。此外,我们无法使用which
命令验证是否存在已安装的库。
答案 0 :(得分:2)
您可以调用subprocess.check_output,因为dd
提供了--version
标志来输出它的版本:
import subprocess
m = subprocess.check_output(["dd", "--version"])
ver_line = m.split('\n')[0]
ver = ver_line.split(' ')
msg = 'dd status=progress does not work'
if float(ver[2]) >= 8.24:
msg = 'dd status=progress works'
print msg
可能是一个足够好的版本检查。
我不认为您的样本dd
命令是您真正想要的。