Python 使用选项和参数调用shell脚本并获取输出

Python 使用选项和参数调用shell脚本并获取输出,python,shell,Python,Shell,我试图调用带有选项和参数的shell脚本,并获取输出。 它没有像预期的那样工作。请帮忙。 我对Python不是很熟悉 import os import subprocess jpsop=os.popen("jps |grep Main|awk '{print $1}'").read() print jpsop #print jpsop.partition(' ')[2] for pid in jpsop.split(): print pid subprocess.Popen([

我试图调用带有选项和参数的shell脚本,并获取输出。 它没有像预期的那样工作。请帮忙。 我对Python不是很熟悉

import os
import subprocess
jpsop=os.popen("jps |grep Main|awk '{print $1}'").read()
print jpsop
#print jpsop.partition(' ')[2]

for pid in jpsop.split():
    print pid
    subprocess.Popen(['/home/muthu/Downloads/check_jstat.sh', '-p' +     pid])
    print output
#  os.system('/home/muthu/Downloads/check_jstat.sh')
我也试过,

  output=subprocess.Popen(['/home/muthu/Downloads/check_jstat.sh', '-p', str(pid)])

我在代码中使用了类似的东西来调用命令和bash脚本,其中cmd可以是“my_script.sh-p sth”。还要检查bash脚本是否具有正确的权限;)(chmodu+xscript.sh)。我希望这样能有所帮助

   def run_cmd(self,cmd):
        """
        :param cmd: command to invoke
        :return: status of command
        """
        try:
            result = subprocess.check_output(cmd, stderr=subprocess.STDOUT, universal_newlines=True, shell=True)
        except subprocess.CalledProcessError as grepexc:
            return {"status": "ERROR", "code" : grepexc.returncode, "output" : grepexc.output}
        return {"status": "OK", "code": 0, "output" : result}

查看argparse、optpasse和getopt。