子进程调用'time'的错误版本

时间:2016-10-11 10:16:49

标签: python linux shell time subprocess

我正试图通过

调用'time'的shell关键字版本
db.execSQL("DROP TABLE IF EXISTS"+TABLE_NAME);

这给了我输出(/ usr / bin / time输出):

db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);

而不是shell关键字输出:

subprocess.check_output('time ls',stderr=subprocess.STDOUT,shell=True)

由于某种原因,subprocess.check_output正在使用/ usr / bin / time版本的时间。

有人能告诉我这里发生了什么吗?谢谢。

1 个答案:

答案 0 :(得分:2)

这是因为time也是Bash中的内置函数。因此,您需要指定要将Bash用作shell:

print subprocess.check_output('time ls', stderr=subprocess.STDOUT,\
    shell=True, executable='/bin/bash')