2012-09-05 6 views
0

J'utilise un script shell pour appeler le script jython. Lorsque j'appelle un script shell, je veux passer les arguments qui devraient éventuellement être passés au script jython.
exemple de commande est le suivantPasser des arguments du script shell au script jython

./passarg.sh -m 12345 -p 'hello' 

le code passarg.sh est le suivant. Où, comme dans le script jython, j'utilise getopt pour analyser les arguments. Le myJythonscript.py ressemble à ci-dessous.

#!/usr/bin/env jython 

import unittest 
import java 
import time 
import os 
import sys, getopt 
def authenticateAccount(verizionAmImp, mdn, password): 
    if verizonAMImp.authenticateAccount(mdn, password): 
     print mdn, " is registered" 
    else: 
     print mdn, " is not registered"  
def getRole(verizonAmImp, mdn): 
    role = verizonAMImp.getRole(mdn) 
    print mdn, " role is ", role 

def main(): 
    URL = "http://localhost:8080/verizon-am-mock/ws/onlinedevice/service" 

    password = "verizon0" 
    methodCall = 0 


    #for Debugging 
    print " System Arguments ", sys.argv 
    opts, operand = getopt(sys.argv[1:],"ar:m:p:u") 

    for o,v in opts: 
     if o == "-a": 
      methodCall = 1 
     elif o == "-r": 
      methodCall = 2 
     elif o == "-m": 
      mdn = v 
     elif o == "-p": 
      password = v 
     elif o == "-u": 
      URL = v 

    if (mdn is None) or (len(mdn) == 0): 
     print "Please provide MDN in the argument" 
     exit(1)  

    verizonAMImp = makePortFactory(URL);  

    if methodCall == 1: 
     authenticateAccount(verizonAMImp, mdn, password) 
    elif methodCall == 2 :  
     getRole(verizonAMImp, mdn)  
    else: 
     print "Please check the arguments" 
     exit(1) 
if __name__ == '__main__': 
    main() 

Répondre

Questions connexes