linux-将变量从Jython(wsadmin)传递到shell脚本
作者:互联网
我试图将使用wsadmin.sh调用的Jython脚本从WebSphere检索的值传递给我的调用程序外壳程序脚本中的变量.
调用方外壳程序脚本(getValue.sh)将具有:
#!/bin/sh
/opt/ibm/WebSphere/AppServerV70/bin/wsadmin.sh -lang jython -conntype SOAP -f /home/user/Jython.py
exit 0
Jython脚本(Jython.py)将具有:
cellName = AdminControl.getCell()
return cellName
如何将cellName的值存储到我的shell脚本中的变量中,例如CELL_NAME,可以这样使用:
echo "Cell Name is: " ${CELL_NAME}
这个版本的Jython脚本比我实际使用的脚本简单得多,但是我认为概念是相同的.
如果我在Jython脚本中使用了很多函数,是否可以将其中一个值传递给我的Shell脚本?即
def getValue1():
value1 = "1"
return value1
def getValue2():
value2 = "2"
return value2
def getValue3():
value3 = "3"
return value3
print getValue1()
print getValue2()
print getValue3()
我有一种方法可以将多个值存储到不同的Shell脚本变量中?即
echo "Value #1: " ${VALUE_ONE}
echo "Value #2: " ${VALUE_TWO}
echo "Value #3: " ${VALUE_THREE}
…这样,我可以运行一个Jython脚本,该脚本将检索多个值,并在我的shell脚本中使用这些多个值进行进一步处理.
感谢您提供任何帮助.
解决方法:
谢谢你,马特.你让我走上了正轨.通过在命令中添加“ | tail -1”,我可以实现所需的功能.您可能已经知道wsadmin SOAP连接总是如何显示出来的:
WASX7209I: Connected to process "dmgr" on node labCellManager01 using SOAP connector; The type of process is: DeploymentManager
…因此,我不得不找到一种方法,仅将屏幕输出的最后一部分分配给我的变量,因此使用了“ tail -1”.
该命令变为:
result=`/opt/ibm/WebSphere/AppServerV70/bin/wsadmin.sh -lang jython -conntype SOAP -f /home/user/Jython.py | tail -1`
使用它时,您必须注意在Jython脚本中屏幕上要打印的内容,因为只有最后的打印将分配给该变量.您可以使用tail命令调整所需的内容.
谢谢您的帮助
标签:shell,jython,linux,wsadmin 来源: https://codeday.me/bug/20191028/1953758.html