2015-06-19 4 views
-1

Я пытаюсь вызвать сценарий оболочки с параметром и аргументом и получить вывод. Он не работает должным образом. Пожалуйста помоги. Я не очень хорошо знаком с 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)]) 
+0

посмотреть на argparse, optparse и getopt. – boardrider

ответ

-1

я н, как это в моем коде, чтобы вызывать команды и мои Баш скрипты, где команда может быть «my_script.sh -p STH». Также проверьте, есть ли у вашего скрипта bash правильные разрешения;) (Chmod u + x script.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} 
Смежные вопросы