以下是我想要逐字执行的 shell 命令的示例。在 python 中有什么方法可以做到这一点(即类似于 ruby 中的 %x{command} 构造,它将接受您提供的任何内容)。
kill -9 $(ps -ef | grep java | grep TaskTracker | awk '{print $2}')
这里的技巧是它有链式管道 - 所以就我所知这不能与例如 popen 很好地配合。
答案1
该命令需要 shell 功能,包括命令替换和管道,因此您应该shell=True
在subprocess.call()
调用时使用。只要您在 shell 中运行它,它就应该可以正常工作。所以:
from subprocess import call
call("kill -9 $(ps -ef | grep java | grep TaskTracker | awk '{print $2}')",
shell=True)
答案2
尝试:
import os
os.system(yourcommandshere)
请记住,为了便于移植,您应该正确识别您所使用的操作系统。