【问题标题】:Passing arguments from shell script to jython script将参数从 shell 脚本传递到 jython 脚本
【发布时间】:2012-09-05 08:24:02
【问题描述】:

我正在使用一个 shell 脚本来调用 jython 脚本。当我调用 shell 脚本时,我想传递最终应该传递给 jython 脚本的参数。
示例命令如下

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

passarg.sh 代码如下。

#!/bin/bash
#check whether jython exist or not.
if  which jython >/dev/null; then
    echo " "
else
    echo "Jython does't exist on your system, install it first"
    echo "   Command: sudo apt-get install jython"
    exit 1
fi

# The dependent
export CLASSPATH=.:\
./lib/javaee.jar:\


jython myJythonscript.py  -a  #how to passed arguments to myJythonscript.py

在 jython 脚本中,我使用 getopt 来解析参数。 myJythonscript.py 如下所示。

#!/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()

【问题讨论】:

    标签: python shell jython command-line-arguments


    【解决方案1】:

    一如既往。

    ./someprog "$@"
    

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多